2012-04-07 15 views
3

Diese meine Frage ist:Spalte ist in der Auswahlliste ungültig, da sie in einer Aggregatfunktion oder die GROUP BY-Klausel SQL Server nicht enthalten ist

SELECT r.CALLID AS MultiRES, 
c.CallDate AS CallDate, 
cr.Institution AS Institution, 
cr.Branch AS Branch 
FROM tblResolution r 
INNER JOIN tblcall c ON c.CallID=c.CallID AND c.CallDate=c.CallDate 
INNER JOIN tblCaller cr ON cr.Institution = cr.Institution AND cr.Branch=cr.Branch 
GROUP BY r.CALLID HAVING COUNT(*) > 1; 

Aber ich erhalte eine Fehlermeldung, wenn ich es laufen, ich Ich weiß, dass ich etwas mit einer Gruppenklausel machen muss, ich weiß einfach nicht, wo ich es hinstellen soll.

EDIT: Nur herausgefunden, was falsch war:

SELECT r.CALLID AS MultiRES, 
c.CallDate AS CallDate, 
cr.Institution AS Institution, 
cr.Branch AS Branch 
FROM tblResolution r 
INNER JOIN tblcall c ON c.CallID=c.CallID AND c.CallDate=c.CallDate 
INNER JOIN tblCaller cr ON cr.Institution = cr.Institution AND cr.Branch=cr.Branch 
GROUP BY c.CallDate,cr.Institution,cr.Branch, r.CALLID HAVING COUNT(*) > 1; 
+1

Zuerst brauchen Sie keine 'GROUP BY', weil Sie nichts (' SUM', 'COUNT',' AVG') in Ihrem 'SELECT' aggregieren. Zweitens muss jede Spalte, die nicht aggregiert wird, in Ihrer GROUP BY-Klausel enthalten sein. –

+0

@KenWhite: Aber * sie * sind etwas in der 'HAVING'-Klausel zusammen. –

Antwort

2

Alles in der select-Klausel in der Gruppe durch Klausel sein muss, es sei denn es eine Aggregatfunktion (zB count oder sum) ist:

SELECT r.CALLID AS MultiRES, 
c.CallDate AS CallDate, 
cr.Institution AS Institution, 
cr.Branch AS Branch 
FROM tblResolution r 
INNER JOIN tblcall c ON c.CallID=c.CallID AND c.CallDate=c.CallDate 
INNER JOIN tblCaller cr ON cr.Institution = cr.Institution AND cr.Branch=cr.Branch 
GROUP BY r.CALLID, c.CallDate, cr.Institution, cr.Branch 
HAVING COUNT(*) > 1; 
+0

Ich habe es gerade ausprobiert: – user1319343

+0

Jetzt bekomme ich mehrere Ergebnisse der gleichen Spalte, gibt es eine Möglichkeit, das zu beheben? – user1319343

+2

Was möchten Sie als Ergebnis sehen? Durch Auswählen und Gruppieren von 4 Spalten wird jede Zeile eine einzigartige Kombination von ihnen sein. – krock

Verwandte Themen