我有一个问题,我有一张表格,其中存储了进货记录和另一张表格存储了出货记录。我需要按照零件号对这些记录进行分组,并得到单个输出。
InTable
PartNo Qty Date
A 1 1/1/13
A 5 1/1/13
B 2 1/1/13
OutTable
PartNo Qty Date
A 2 1/1/13
B 1 1/1/13
C 3 1/1/13
Result Needed
Date 1/1/13
PartNo In Out Total
A 6 2 4
B 2 1 1
C 0 3 -3
我曾尝试过类似的方法,但由于sum(qty)的存在,它会影响总数,而其他方法则无法实现。
select a.PartNo, sum(b.inQty) as inQty,sum(c.outQty) as outQty, sum(b.inQty)-sum(c.outQty) as total from
(Select PartNo FROM InTable
where date= '01-01-2013'
group by PartNo
union
Select PartNo FROM OutTable
where date= '01-01-2013'
group by PartNo) A
cross join
(
SELECT PartNo,SUM(Qty) inQty FROM InTable
where date= '01-01-2013'
group by PartNo
)B
cross join
(
SELECT PartNo,SUM(Qty) outQty FROM OutTable
where date= '01-01-2013'
group by PartNo
)c
group by a.PartNo
我尝试将三个查询组合在一起,每个查询单独执行都会产生有用的结果,但问题是当我尝试将它们组合在一起时,查询结果会变得很混乱,类似于:
PartNo inQty outQty total
A 8 6 2
B 8 6 2
C 8 6 2
有什么建议吗?谢谢。