2014-06-05 4 views
0

이 내 스크립트원하는 출력을위한 올바른 SQL 스크립트는 무엇입니까?

SELECT '' AS [DATE],'' AS [INCOMING],'' AS [OUTGOING],BegBal AS [BALANCE] 
    FROM TABLE1 WHERE ItemCode='Item1' 
UNION ALL 
SELECT DelDate as [DATE],'' AS [INCOMING],Qty as [OUTGOING],'' 
    FROM Table2 WHERE ItemCode='Item1' 
UNION ALL 
SELECT RecDate AS [DATE],Qty as [INCOMING],'' as [OUTGOING],'' 
    FROM Table3 WHERE ItemCode='Item1' 

하고 내 결과가

DATE  INCOMING OUTGOING BALANCE 
1900-01-01 0.0  0.0  100.0 
2014-06-05 0.0  2.0  0.0 
2014-06-14 10.0  0.0  0.0 

내가 내 결과는 제안 된 답변을 시도 @olanyer이

DATE  INCOMING OUTGOING BALANCE 
1900-01-01 0.0  0.0  100.0 
2014-06-05 0.0  2.0  98 
2014-06-14 10.0  0.0  108 
+0

처럼되고 싶어? 그것이 당신을 위해 작동한다면, 당신은 그것을 받아 들일 수 있습니까? – Horaciux

답변

0
declare @balance int 
declare @outgoing int 

SELECT @balance=sum(BegBal) FROM TABLE1 WHERE ItemCode='Item1' 
SELECT @outgoing=sum(Qty) FROM Table2 WHERE ItemCode='Item1' 

SELECT '' AS [DATE],'' AS [INCOMING],'' AS [OUTGOING],BegBal AS [BEGINING BALANCE] 
FROM TABLE1 WHERE ItemCode='Item1' 
UNION ALL 
SELECT DelDate as [DATE],'' AS [INCOMING],Qty as [OUTGOING],@balance-Qty 
FROM Table2 WHERE ItemCode='Item1' 
UNION ALL 
SELECT RecDate AS [DATE],Qty as [INCOMING],'' as [OUTGOING],@[email protected] 
FROM Table3 WHERE ItemCode='Item1'