我现有以下两个表(表A,表B)
[表A]
编号 名称 付款日期 付款单号 付款金额 进货编号
101 C-1 2009-09-24 10001 300 100003
102 C-1 2009-9-25 10001 400 100003
103 C-1 2009-9-25 10001 200 100003
104 C-2 2009-9-25 10002 100 100004[表B]
进货编号 数量 单价 金额 备注
100003 10 20 200
100003 20 20 400
100003 5 20 100
100003 5 40 200
100004 5 10 50
100004 2 5 10
100004 4 10 40
现在我想要得到的是
[表C]
编号 名称 付款日期 付款单号 付款金额 进货编号 数量 单价 金额 备注
101 C-1 2009-09-24 10001 300 100003 10 20 200
102 C-1 2009-9-25 10001 400 100003 20 20 400
103 C-1 2009-9-25 10001 200 100003 5 20 100
(null) (null) (null) (null) (null) 10003 5 400 200
小计 (null) (null) (null) 900 40 0 900
104 C-2 2009-9-25 10002 100 100004 5 10 50
(null) (null) (null) (null) (null) 100004 2 5 10
(null) (null) (null) (null) (null) 100004 4 10 40
小计 (null) (null) (null) (null) 0 11 0 100SELECT 表A.编号, 表A.名称,表A.付款日期,表A.付款单号,表A.付款金额,表A.进货编号
,表B.数量,表B.单价,表B.金额,表B.备注
FROM 表A RIGHT OUTER JOIN
表B ON 表A.进货编号=表B.进货编号
我现在用right outer join不能达到我的要求,请问各位大侠帮忙,谢谢。
[表A]
编号 名称 付款日期 付款单号 付款金额 进货编号
101 C-1 2009-09-24 10001 300 100003
102 C-1 2009-9-25 10001 400 100003
103 C-1 2009-9-25 10001 200 100003
104 C-2 2009-9-25 10002 100 100004[表B]
进货编号 数量 单价 金额 备注
100003 10 20 200
100003 20 20 400
100003 5 20 100
100003 5 40 200
100004 5 10 50
100004 2 5 10
100004 4 10 40
现在我想要得到的是
[表C]
编号 名称 付款日期 付款单号 付款金额 进货编号 数量 单价 金额 备注
101 C-1 2009-09-24 10001 300 100003 10 20 200
102 C-1 2009-9-25 10001 400 100003 20 20 400
103 C-1 2009-9-25 10001 200 100003 5 20 100
(null) (null) (null) (null) (null) 10003 5 400 200
小计 (null) (null) (null) 900 40 0 900
104 C-2 2009-9-25 10002 100 100004 5 10 50
(null) (null) (null) (null) (null) 100004 2 5 10
(null) (null) (null) (null) (null) 100004 4 10 40
小计 (null) (null) (null) (null) 0 11 0 100SELECT 表A.编号, 表A.名称,表A.付款日期,表A.付款单号,表A.付款金额,表A.进货编号
,表B.数量,表B.单价,表B.金额,表B.备注
FROM 表A RIGHT OUTER JOIN
表B ON 表A.进货编号=表B.进货编号
我现在用right outer join不能达到我的要求,请问各位大侠帮忙,谢谢。
,表B.数量,表B.单价,表B.金额,表B.备注
FROM 表A RIGHT OUTER JOIN
表B ON 表A.进货编号=表B.进货编号
union
SELECT 小计, 表A.名称,null,null,sum(isnull(表A.付款金额,0)),null,sum(isnull(表B.数量,0)),0,sum(isnull(表B.金额,0)),null
FROM 表A RIGHT OUTER JOIN
表B ON 表A.进货编号=表B.进货编号
group by 计, 表A.名称
1.想办法插入中间的"小计"行
2.按"进货编号"拆分表B,形成子表,然后right join……
小计 用sum、 group by就可以了
排序 用order by问题关键是表建的有问题,如果表A是按 进货行号 付款,应该在两表增加 进货行号[表A]
编号 名称 付款日期 付款单号 付款金额 进货编号 进货行号
101 C-1 2009-09-24 10001 300 100003 010
102 C-1 2009-9-25 10001 400 100003 020
103 C-1 2009-9-25 10001 200 100003 030
104 C-2 2009-9-25 10002 100 100004 010[表B]
进货编号 数量 单价 金额 备注 进货行号
100003 10 20 200 010
100003 20 20 400 020
100003 5 20 100 030
100003 5 40 200 040
100004 5 10 50 010
100004 2 5 10 020
100004 4 10 40 030