当前位置: 代码迷 >> Sql Server >> 请教怎么创建这样视图
  详细解决方案

请教怎么创建这样视图

热度:11   发布时间:2016-04-24 09:54:35.0
请问如何创建这样视图
本帖最后由 csyx1234 于 2014-10-10 19:06:27 编辑
表头 bh:id, billno, dept_out, dept_in
明细 bi: id, headid, prodid, deptid, qty

有数据如下:
bh ----------------------------------------------
id billno dept_out dept_in
123 xx0001 a01 b02

bi ----------------------------------------------
id headid prodid deptid qty
aa1 123 p1 a01 10
aa2 123 p2 a01 20
aa3 123 p1 b02 15
aa3 123 p3 b02 30

创建视图 view1,想得到这样的结果
==================================================
billno		dept_out	dept_in		prodid		qty_out		qty_in
--------------------------------------------------
xx001 a01 b02 p1 10 0
xx001 a01 b02 p2 20 15
xx001 a01 b02 p3 0 30

请贴上视图的 sql 语句

------解决思路----------------------
你参考一下,
CREATE VIEW VIEWNAME
AS
SELECT A.billno,A.dept_out,A.dept_in,B.prodid
,ISNULL(SUM(CASE WHEN A.dept_out=B.deptid THEN B.qty END),0)qty_out
,ISNULL(SUM(CASE WHEN A.dept_in=B.deptid THEN B.qty END),0)qty_in
FROM bh A LEFT JOIN bi B ON A.id=B.headid
GROUP BY
A.billno,A.dept_out,A.dept_in,B.prodid

你的所的结果样式,15应该在第一行
  相关解决方案