2016-12-02 113 views
0

有2個表 - 產品及銷售簡單的SQL查詢銷量最高

Products 
prod_id 
prod_nm 



Sales 
prod_id 
cust_id 
sls_dt 
sls_amt 

編寫一個查詢,選擇所有產品。對於每個產品,顯示過去30天內的銷售總額,如果在30天內未使用子查詢銷售,則爲0。 sls_dt>現在() - -

由於不同的RDBMS有不同的日期函數,你可以通過日期,使用以下僞代碼過濾器30

進出口新的SQL和IM試圖像這樣因爲我發現這個在線。

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

但是,這不是'工作。任何幫助表示讚賞

+0

'使用以下僞code' ...日期函數是高度依賴RDBMS和通用的答案可能沒有幫助任何人。你正在使用哪個數據庫? –

+0

您可以使用以下僞代碼進行日期過濾 - sls_dt> now() - 30. – pruthvi

+0

@TimBiegeleisen – pruthvi

回答

0

嘗試以下:

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

這個工作的人。謝謝@Gurwinder – pruthvi