表1(合同表): 表2(合同明细表): 表3(出货单):
公司 合同号 合同号 明细号 单价 合同号 合同明细 出货数量
AA A | A a1 20 | A a1 50
BB B | A a2 30 | A a2 80
| B b1 10 | B b1 60
| B b2 40 | B b2 20通过以上3张表得到下面的表:
表4(发货统计表):
公司名称 合同号 出货数量 出货金额
AA A 130 3400
BB B 150 1400
合计: 280 4800
要得到表4请问应该怎么办,这样的存储过程应该怎样写?请各位高手指点!
公司 合同号 合同号 明细号 单价 合同号 合同明细 出货数量
AA A | A a1 20 | A a1 50
BB B | A a2 30 | A a2 80
| B b1 10 | B b1 60
| B b2 40 | B b2 20通过以上3张表得到下面的表:
表4(发货统计表):
公司名称 合同号 出货数量 出货金额
AA A 130 3400
BB B 150 1400
合计: 280 4800
要得到表4请问应该怎么办,这样的存储过程应该怎样写?请各位高手指点!
join 表1 on 表3.合同号=表1.合同号 group by 公司,表3.合同号
join 表1 on 表3.合同号=表1.合同号 group by 公司,表3.合同号
select a.公司,max(b.合同号),sum(c.数量),sum(c.数量*b.单价)
from 表1 a,表2 b,表3 c
where a.合同号=b.合同号 and b.合同号=c.合同号 and b.明细号=c.明细号
group by a.公司要得到合计,在写grid时用sum=sum+sum(c.数量)(金额也是一样)在填到grid中就可以啦
前面的select a.公司,max(b.合同号)也要改为select a.公司,b.合同号
如果还要排序可以在最后加order by 不过order by的后面必须是select后面的几个
from 表3 join 表2 on 表3.合同号=表2.合同号 and 表3.明细号=表2.明细号
join 表1 on 表3.合同号=表1.合同号 group by 公司,表3.合同号
公司 合同号 合同号 明细号 单价 合同号 明细 出货数 业务员
AA A | A a1 20 | A a1 50 XXX
BB B | A a2 30 | A a2 80 XXX
CC C | B b1 10 | B b1 60 XXX
DD D | C c1 40 | C c1 50 YYY
| C c2 20 | C c2 20 YYY
D d1 35 | D d1 20 YYY通过以上3张表得到下面的表:
表4(发货统计表):
业务员 公司名称 合同号 出货数量 出货金额
---------------------------------------------------
XXX AA A 130 3400
XXX BB B 60 600
小计: 190 4000
---------------------------------------------------
YYY CC C 70 2400
YYY CC D 20 700
小计: 90 3100
---------------------------------------------------
合计: 280 7100这种情况有该如何呢?用COMPUTE BY 吗?怎样写代码?