請各位大大幫忙看看~撈ERP產品資料的SQL有問題

三十六度

我需要用語法把1年內在各平台賣不出去的產品列出報表

但這段語法一直過不了 ~~ 請高手幫忙看一下,感謝!!

Select

a.據點代號,
b.產品代號,
max(c.產品名稱) as 產品名稱,
sum(b.數量 * b.實際金額) as 產品銷售額,
sum(b.數量) as 產品銷售量

From

(銷售主檔 a Inner JoIn 銷售明細商品 b on a.銷售單號 =b.銷售單號) inner join 商品檔 c on b.產品代號= c.產品代號

Where

a.日期 >='2019/01/01' And a.日期<='2019/12/31'

group by a.據點代號,b.產品代號

order by 產品銷售量
pilipala
有錯誤訊息可以參考嗎?

覺得銷售主檔和銷售明細商品 JOIN 時,應該不用有前後括號,亂猜的
pilipala
先釐清一下過不了是語法有錯誤訊息,還是產出的結果不如預期
真的有點難
order by 產品銷售量 改成 order by sum(b.數量 * b.實際金額)
P陳
賣不出去的產品怎會有銷售量可以 ORDER 呢?

因為賣不出去日期在 1/1 ~12/31 當然也撈不到資料了
真的有點難
與4F的想法一樣 日期應該要有兩種 一個是進貨日 一個是出貨日 這樣才有解
三十六度
感謝3F及4F大大

我錯了2個地方,第1個是oder by 改成 sum() 就可以跑了

第2個是賣不出去當然沒資料可撈,

所以我改成這樣

Select

a.產品代號,
max(a.產品名稱) as 產品名稱,
sum(b.數量* b.實際金額) as 產品銷售額,
sum(b.數量) as 產品銷售量,
max(c.據點代號) as 據點

From

(商品檔 a left JoIn 銷售明細商品 b on a.產品代號 =b.產品代號) left join 銷售主檔 c on b.銷售單號= c.銷售單號



group by a.產品代號

order by sum(b.數量) desc

只不過沒辦法限定 銷售主檔 的 日期區間為 1年,因為他放在 left join 後,怎麼下都錯 ><


阿恢
我測試是可以限制在一年內...

Select
a.產品代號,
max(a.產品名稱) as 產品名稱,
sum(b.數量* b.實際金額) as 產品銷售額,
sum(b.數量) as 產品銷售量,
max(c.據點代號) as 據點
From
商品檔 a left JoIn 銷售明細商品 b on a.產品代號 =b.產品代號 left join 銷售主檔 c on b.銷售單號= c.銷售單號
Where
c.日期 between '2019/01/01' And '2019/12/31 23:59:59'
group by a.產品代號
order by sum(b.數量) desc

最有價值解答

P陳
您參考看看 用子查詢方式作的

Not IN 表示2019 沒有交易的
SELECT D01客戶主檔.客戶編號 FROM D01客戶主檔 GROUP BY D01客戶主檔.客戶編號
HAVING (((D01客戶主檔.客戶編號)
Not In (select 客戶編號 from B01憑單主檔 where 憑單主檔編號 like '2019*')));

IN 表示 2019 有交易的
SELECT D01客戶主檔.客戶編號 FROM D01客戶主檔 GROUP BY D01客戶主檔.客戶編號
HAVING (((D01客戶主檔.客戶編號)
In (select 客戶編號 from B01憑單主檔 where 憑單主檔編號 like '2019*')));
真的有點難
如果有進貨資訊 交貨資訊 兩個一減 就是答案了吧

with
進貨 as
(
select 品號,sum(數量) 進貨量 from 進貨單 where year(日期)='2019' group by 品號
),
銷貨 as
(
select 品號,sum(數量) 銷貨量 from 銷貨單 where year(日期)='2019' group by 品號
)

select t1.品號,(t1.進貨量-t2.銷貨單) from 進貨 t1 left join 銷貨單 t2 on t1.品號=t2.品號
三十六度
7F大:
是可以跑,但是我RUN出來的資料會有少,沒賣出去的通通列不出來,只列出來賣出去的

P陳大:
感謝您,我用子查詢解決了。

真的有點難大:
要撈商品檔,因為有可能是很久以前進貨的,一直都沒賣出去,感謝您的協助
回到頂部