SQL语句中两个主表和两个明细表的合并查询
例如:主表A:billdnobilldatenotes120ABD1202011-3-6121ABD1212011-2-27123ABD1232011-3-8明细表a:b...
例如:主表A:
billd no billdate notes
120 ABD120 2011-3-6
121 ABD121 2011-2-27
123 ABD123 2011-3-8
明细表a:
billd qty price money
120 100 2400.00 111
120 100 4500.00 111
120 300 1900.00 111
121 100 1900.00 111
121 200 4800.00 111
121 300 7000.00 111
123 290 2500.00 111
123 110 7800.00 111
主表B:
billd no billdate
130 XSD130 2010-3-6
131 XSD131 2010-5-6
133 SXD133 2011-3-8
明细表b:
billd qty price money
130 200 2440.00 1
130 300 2121.00 1
130 123 4242.00 1
131 100 4241.00 1
131 300 1210.00 1
131 400 1212.00 1
133 100 4545.00 1
133 213 1321.00 1
求得出如下结果的一句SQL语句:
billd billdate no notes qty money
121 2011-3-6 ABD120 500 333
122 2011-2-27 ABD121 600 333
123 2011-3-8 ABD123 400 222
130 2010-3-6 XSD130 623 3
131 2010-5-6 XSD131 800 3
133 2011-3-8 SXD133 313 2 展开
billd no billdate notes
120 ABD120 2011-3-6
121 ABD121 2011-2-27
123 ABD123 2011-3-8
明细表a:
billd qty price money
120 100 2400.00 111
120 100 4500.00 111
120 300 1900.00 111
121 100 1900.00 111
121 200 4800.00 111
121 300 7000.00 111
123 290 2500.00 111
123 110 7800.00 111
主表B:
billd no billdate
130 XSD130 2010-3-6
131 XSD131 2010-5-6
133 SXD133 2011-3-8
明细表b:
billd qty price money
130 200 2440.00 1
130 300 2121.00 1
130 123 4242.00 1
131 100 4241.00 1
131 300 1210.00 1
131 400 1212.00 1
133 100 4545.00 1
133 213 1321.00 1
求得出如下结果的一句SQL语句:
billd billdate no notes qty money
121 2011-3-6 ABD120 500 333
122 2011-2-27 ABD121 600 333
123 2011-3-8 ABD123 400 222
130 2010-3-6 XSD130 623 3
131 2010-5-6 XSD131 800 3
133 2011-3-8 SXD133 313 2 展开
2个回答
展开全部
select 主表A.billid, 主表A.billdate, 主表A.no,主表A.notes,明细表a.qty,明细表a.money from 主表A,明细表a where 主表A.billid=明细表a billid
union
select 主表B.billid, 主表B.billdate, 主表B.no,null,明细表b.qty,明细表b.money from 主表B,明细表b where 主表B.billid=明细表b billid
union
select 主表B.billid, 主表B.billdate, 主表B.no,null,明细表b.qty,明细表b.money from 主表B,明细表b where 主表B.billid=明细表b billid
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询