2016-05-29 3 views
0

Wir suchen nach stündlichen Verkaufsdaten für alle Produkte, die in den letzten 4 Monaten einen Umsatz hatten (unser System schreibt jede Stunde einen Datensatz mit der Gesamtzahl der Verkäufe für jedes Produkt), aber nur für Produkte mit Verkauf). Ich habe eine Ansicht erstellt, die jede Stunde für die letzten 4 Monate berechnet und das funktioniert richtig. Wenn ich einen Linksbündnis mache, verhält es sich wie ein Rechtsbeitritt, es gibt nur Datensätze zurück, für die es in dieser Stunde Verkäufe gab. Wenn keine Verkäufe vorliegen, wird kein Null-Datensatz zurückgegeben. Was mache ich falsch?So verwenden Sie einen linken Join auf Datetime-Felder

SELECT SUM(quantity) as total, product_name, vw.dates 
FROM vwGetHours4Months vw 
LEFT JOIN Product_Sales ps ON vw.Dates=ps.sales_hour 
GROUP BY product_name,vw.dates 
OPTION (maxrecursion 0) 
+1

Ist das die vollständige Abfrage oder nur ein Teil davon? Das sollte funktionieren ... Ist 'Product_Sales' ein' BASE TABLE'? Ist 'product_name' wirklich ein Teil von' Product_Sales'? Könnte es sein, dass es nur eine 'product_ID' und eine' INNER JOIN' zu einer 'product' Tabelle gibt? Könnten Sie bitte ein [MCVE] (http://stackoverflow.com/help/mcve) erstellen? – Shnugo

+0

Ist diese Frage noch offen? Brauchen Sie weitere Hilfe? Bitte beachten Sie, dass die meisten Experten, die auf SO antworten, nach Reputationspunkten hungern. [Bitte lesen Sie: jemand-Antworten] (http://stackoverflow.com/help/someone-answers). Danke! – Shnugo

Antwort

1

Ich denke, das Problem ist, dass Sie durch product_name gruppieren und da dies für Stunden null sein, wenn kein Verkauf ist es aus dem Ergebnis wird weggelassen.

Versuchen:

SELECT SUM(quantity) as total, product_name, vw.dates 
FROM vwGetHours4Months vw 
LEFT JOIN Product_Sales ps ON vw.Dates=ps.sales_hour 
GROUP BY isnull(product_name,''),vw.dates 
OPTION (maxrecursion 0) 
+0

Sie Sir, sind richtig! Danke dafür. – JonnyBravoJr

Verwandte Themen