表DepotList:进出库列表DepotType 0进库,1出库
进出库标志,类别,编码,数量, 单价
DepotType,Class, GoodsNo,Number,Price
0 ,Class1, 1001 ,5 ,10.00
0 ,Class1, 1001 ,8 ,12.00
1 ,class1, 1001 ,3 ,20
0, ,class2, 2001 ,10 ,15还有一表GoodsInfo通过GoodsNo与List表关联
GoodsNo,UNIT
1001 个
2001 套1、通过类别查询:Class1,class2,全部类别查库查结果应该为
Class, GoodsNo,Number,总金额,UNIT
Class1, 1001 ,10 ,86 ,个
class2, 2001 ,10 ,150 ,套2、通过GoodsNo查询:GoodsNo = 1001,查询结果应为
Class, GoodsNo,Number,总金额,UNIT
Class1, 1001 ,10 ,86 ,个
进出库标志,类别,编码,数量, 单价
DepotType,Class, GoodsNo,Number,Price
0 ,Class1, 1001 ,5 ,10.00
0 ,Class1, 1001 ,8 ,12.00
1 ,class1, 1001 ,3 ,20
0, ,class2, 2001 ,10 ,15还有一表GoodsInfo通过GoodsNo与List表关联
GoodsNo,UNIT
1001 个
2001 套1、通过类别查询:Class1,class2,全部类别查库查结果应该为
Class, GoodsNo,Number,总金额,UNIT
Class1, 1001 ,10 ,86 ,个
class2, 2001 ,10 ,150 ,套2、通过GoodsNo查询:GoodsNo = 1001,查询结果应为
Class, GoodsNo,Number,总金额,UNIT
Class1, 1001 ,10 ,86 ,个
sum(price*(case depottype when 0 then 1 else (-1) end)) as 总金额,unit from depotlist,goodsinfo
where depotlist.goodsno = goodsinfo.goodsno
group by class,unit
第二个和第一个只是多了个and,自己处理一下吧,我感觉有了unit就不需要goodsno了,所以没给你家上,如果需要自己加上就行了,由于跨表,最后group的时候是不是需要加上unit我也不记得了,自己测试一下就行了。
方法
1。DepotType是0的分组汇总后放入临时表1 ,DepotType为1的分组汇总后放入临时表2。
2。通过class的条件执行相减操作。
不过觉得使用视图的话会简单一点。
老兄,帮我推荐2点关于SQL的书吧,我从没做个这个东西:)
再次谢谢你,还有问题要向你请教:)