Immer die Anzahl der Datensätze in der untergeordneten Tabelle mit select-Anweisung
Ich habe eine gespeicherte Prozedur, in der ich versuche, wählen Sie alle Spalten der Tabelle 1. Es gibt eine andere Tabelle, die verwendet Tabelle1 primary key als foreign key. Ich möchte die Anzahl der Datensätze in dieser foreign-key-Tabelle, wählen Sie so:
SELECT *, count(*) VacancyCount
FROM Table1 hc
LEFT JOIN Table2 hv
on hc.CompanyID = hv.CompanyID
WHERE hc.Deleted = 0
group by hc.CompanyID
ORDER BY NameLang1
aber es gibt Fehler:
Spalte 'dbo.Tabelle1.NameLang1' ist ungültig in der select-Liste, da es
nicht enthalten ist, entweder in einer Aggregatfunktion oder die GROUP BY
Klausel.
Bitte vorschlagen, wie ich dieses Problem lösen?
InformationsquelleAutor der Frage DotnetSparrow | 2013-05-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte versuchen:
für die Bestellung mit der neuen Spalte
Vorgesehenen Spalte
NameLang1
undVacancyCount
sind vom gleichen Datentyp.InformationsquelleAutor der Antwort TechDo
Müssen Sie Liste jede Spalte in der GROUP BY-Klausel
Diese Spalten sind in den
SELECT *
bit.Dies wäre korrekt, ANSI SQL sowieso.
SELECT *
selbst ist sowieso schlecht: es ist immer besser, explizit auflisten SpaltenInformationsquelleAutor der Antwort gbn
Du tust Gruppierung falsch. Sie müssen die Spalten aus Tabelle 1 WÄHLEN Sie anstelle von '*' und in der GROUP BY-Klausel.
Oder Sie können versuchen, einen anderen Ansatz:
InformationsquelleAutor der Antwort ZZa
Versuchen auf diese Weise umfassen die Liste der Spalte in der group by -
InformationsquelleAutor der Antwort Arun Kumar