2016-12-02 1 views
0

Es gibt 2 Tische - Produkte und Vertriebeinfache SQL-Abfrage höchsten Umsatz

Products 
prod_id 
prod_nm 



Sales 
prod_id 
cust_id 
sls_dt 
sls_amt 

Schreiben Sie eine Abfrage alle Produkte auswählen. Geben Sie für jedes Produkt die Summe der Verkaufsbeträge in den letzten 30 Tagen an oder 0, wenn Sie nicht innerhalb von 30 Tagen ohne Unteranfragen verkauft werden.

Da verschiedene RDBMS unterschiedliche Datumsfunktionen haben, können Sie nach Datum filtern die folgenden Pseudocode - sls_dt> now() - 30.

Im neu zu SQL und im es so versuchen, wie ich diese online gefunden .

Select prod_id, prod_nm from(
Select sls_amt 
From Sales) as t 
Where t.rank = 1 

Dies funktioniert jedoch nicht. Jede Hilfe ist willkommen

+0

'mit den folgenden Pseudo code' ... Datumsfunktionen sind sehr RDBMS abhängig, und eine generische Antwort könnte nicht hilfreich sein, zu niemandem. Welche Datenbank verwendest du? –

+0

können Sie mit dem folgenden Pseudocode nach Datum filtern - sls_dt> now() - 30. – pruthvi

+0

@TimBiegeleisen – pruthvi

Antwort

0

unten Versuchen:

select p.prod_id, 
    p.prod_nm, 
    sum(s.sls_amt) 
from products p 
left outer join Sales s on p.prod_id = s.prod_id 
    and s.sls_dt > now() - 30 
group by p.prod_id, 
    p.prod_nm; 
+0

dieser Mann gearbeitet. Danke @Gurwinder – pruthvi

Verwandte Themen