createtable货品基础资料表
(
货品编码intnotnull,
货品名称char(10)null
)
insertinto货品基础资料表
select001,'酒'
union
SELECT002,'烟'
<!--StartFragment -->
(
货品编码intnotnull,
货品名称char(10)null
)
insertinto货品基础资料表
select001,'酒'
union
SELECT002,'烟'
createtable主表
(
仓库编号intnotnull,
仓库名称char(10)null
)
INSERTINTO主表
SELECT1,'一号仓库'
UNION
SELECT2,'二号仓库'
(
仓库编号intnotnull,
仓库名称char(10)null
)
INSERTINTO主表
SELECT1,'一号仓库'
UNION
SELECT2,'二号仓库'
<!--StartFragment -->
createtable从表
(
仓库编号INTNOTNULL,
货品编码INTNOTNULL,
数量INTNULL
)
INSERTINTO从表
SELECT1,001,3
UNION
SELECT1,002,5
UNION
SELECT2,001,6
UNION
SELECT2,001,1
(
仓库编号INTNOTNULL,
货品编码INTNOTNULL,
数量INTNULL
)
INSERTINTO从表
SELECT1,001,3
UNION
SELECT1,002,5
UNION
SELECT2,001,6
UNION
SELECT2,001,1
<!--StartFragment -->
SELECT货品基础资料表.货品编码,货品基础资料表.货品名称,一号仓库=ISNULL(SUM(CASET1.仓库编号WHEN1THEN数量ELSE0END),0),
二号仓库=ISNULL(SUM(CASET1.仓库编号WHEN2THEN数量ELSE0END),0)
FROM货品基础资料表
RIGHTJOIN(SELECT货品编码,仓库编号,数量=SUM(数量)FROM从表GROUPBY货品编码,仓库编号)T1ONT1.货品编码=货品基础资料表.货品编码
GROUPBY货品基础资料表.货品编码,货品基础资料表.货品名称
二号仓库=ISNULL(SUM(CASET1.仓库编号WHEN2THEN数量ELSE0END),0)
FROM货品基础资料表
RIGHTJOIN(SELECT货品编码,仓库编号,数量=SUM(数量)FROM从表GROUPBY货品编码,仓库编号)T1ONT1.货品编码=货品基础资料表.货品编码
GROUPBY货品基础资料表.货品编码,货品基础资料表.货品名称
<!--StartFragment -->
本文介绍了一个使用SQL进行库存数据汇总的示例。通过创建货品基础资料表、仓库主表和库存从表,并运用右连接及CASE语句,实现不同仓库中特定货品的数量汇总。
1187

被折叠的 条评论
为什么被折叠?



