by ben
作者的乙個軟體專案的查詢系統需求:
有資料表:
名稱 數量 狀態
-----------------------
產品a 10 進貨
產品a 20 銷售
產品b 20 進貨
要查詢結果為:
產品名稱 庫存數量
-----------------------
產品a -10
產品b 20
解決方法一:
select
distinct 名稱,
(isnull((select sum(a.數量) from 庫存表 a where a.名稱 = 庫存表.名稱 and a.狀態='進貨'), 0) -
isnull((select sum(a.數量) from 庫存表 a where a.名稱 = 庫存表.名稱 and a.狀態='銷售'), 0)) as 庫存數量
from
庫存表解決方法二(access):
select 名稱,sum(iif(狀態='進貨',1,-1) * 數量) as 庫存數量 from 庫存表 group by 名稱
解決方法三(access):
select 名稱,sum(iif(狀態='進貨',數量,0)-iif(狀態='銷貨',數量,0)) as 庫存數量 from 庫存表 group by 名稱
用一條SQL完成資料表的行統計
by ben 作者的乙個軟體專案的查詢系統需求 有資料表 名稱 數量 狀態 產品a 10 進貨 產品a 20 銷售 產品b 20 進貨 要查詢結果為 產品名稱 庫存數量 產品a 10 產品b 20 解決方法一 select distinct 名稱,isnull select sum a.數量 fro...
用一條SQL完成資料表的行統計
by ben 作者的乙個軟體專案的查詢系統需求 有資料表 名稱 數量 狀態 產品a 10 進貨 產品a 20 銷售 產品b 20 進貨 要查詢結果為 產品名稱 庫存數量 產品a 10 產品b 20 解決方法一 select distinct 名稱,isnull select sum a.數量 fro...
用一條SQL完成資料表的行統計
by ben 作者的乙個軟體專案的查詢系統需求 有資料表 名稱 數量 狀態 產品a 10 進貨 產品a 20 銷售 產品b 20 進貨 要查詢結果為 產品名稱 庫存數量 產品a 10 產品b 20 解決方法一 select distinct 名稱,isnull select sum a.數量 fro...