2017-11-12 6 views
0

einige Probleme mit SQL zu haben, Iv, um herauszufinden versucht, wie dies für jeden Kunden zeigenÄrger mit SQL COUNT

“heraus zu arbeiten: Firmenname, Kontaktname, Anzahl der Anrufe, bei denen die Anzahl der Anrufe ist weniger als 5 "

Mein Code findet jetzt alle Anrufer mit weniger als 5 Anrufe, findet jedoch keine Anrufer mit 0 Anrufe ?. Außerdem erhält jede Firma 1 Kontakt, der neben der Gesamtzahl der Anrufe unter 5 für diese Firma angezeigt werden soll.

Ich weiß, ich habe es wahrscheinlich nicht gut genug erklärt, aber wenn Sie auf https://sqlzoo.net/wiki/Helpdesk_Medium_Questions (Frage 8) schauen, können Sie die Frage nicht finden und sehen, wie alle Tabellen verknüpfen und die richtige Ausgabe.

Jede Hilfe wird sehr geschätzt.

Dank
SELECT Company_name, First_name, Last_name, COUNT (Company_name) as nc 
FROM Customer 
JOIN Caller ON Customer.Company_ref = Caller.Company_ref 
JOIN Issue ON Caller.Caller_id = Issue.Caller_id 
WHERE Company_name in 
(SELECT Company_name FROM Customer 
JOIN Caller ON Customer.Company_ref = Caller.Company_ref 
JOIN Issue ON Caller.Caller_id = Issue.Caller_id 
GROUP BY Company_name 
HAVING COUNT(Company_name) < 5) 
GROUP BY Company_name, First_name, Last_name 

Antwort

1

für Ihre Anfrage sollten Sie count (*) und nicht conut (company_name)

SELECT Company_name, First_name, Last_name, COUNT (*) as nc 
    FROM Customer 
    JOIN Caller ON Customer.Company_ref = Caller.Company_ref 
    JOIN Issue ON Caller.Caller_id = Issue.Caller_id 
    GROUP BY Company_name, First_name, Last_name 
    HAVING COUNT (*) < 5 
+0

Ihre Lösung mir den Fehler geben "Operand 1 Spalte enthalten sollte (n)" –

+0

bitte zeigen mir die genaue und vollständige Fehlermeldung ..und Fehlercode auch ... (dieser Fehler ist neu für mich) .. – scaisEdge