2014-11-04 4 views
0

나는 트랜잭션 테이블이 있습니다 Tr_No 다음과 같이 차를SQL 거래의 MSSQL에서 문 또는 MYSQL

Tr_No Tr_Date  Tr_Remarks     Tr_Amt 
1  2014-05-05 Cash Deposited     1000 
2  2014-05-06 Credit Card Withdrawal   -250 
3  2014-05-07 ATM Withdrawal     -450 
4  2014-05-08 Cash Deposited     1000 

나는 테이블을 필요로 열쇠입니다 :

Date    Remarks    Cash Deposited Cash Withdrawal Balance 
2014-05-05  Cash Deposited   1000        1000 
2014-05-06  Credit Card Withdrawal      -250    750 
2014-05-07  ATM Withdrawal        -450    300 
2014-05-08  Cash Deposited   1000        1300 

을 나는 SQL 쿼리를 작성해야 위의 테이블을 얻으려면 MySQL 또는 MSSQL. SQL을 처음 접했을 때 저를 도우십시오. Selected Statement를 사용하면 저장 프로시져가 선호됩니다.

+0

@TomTom의 유효한 정보를 주셔서 감사합니다하지만 당신은 아니, 나에게 더 도움이 될 것입니다이 쿼리 ..... – user3085636

+1

를 작성하는 방법을 도와 수 있다면, 그것은 하지 않을 것이다. 이 질문은 코드 작성 서비스가 아니기 때문에 닫힙니다. 다른 사람들에게 당신의 일 (배우고 시도하는 것 포함)을 해달라고하십시오 - 그들을 고용하십시오. 사이트 규칙을 읽고 어떤 질문을 환영하는지 여기에서 시작하십시오. – TomTom

답변

0

시도해보십시오. 이것은 당신에게 아이디어를 줄 것입니다.

CREATE TABLE #tt 
    (
    Tr_No  INT, 
    Tr_Date DATE, 
    Tr_Remarks VARCHAR(100), 
    Tr_Amt  INT 
) 

INSERT INTO #tt 
VALUES  (1,'2014-05-05','Cash Deposited',1000), 
      (2,'2014-05-06','Credit Card Withdrawal',-250), 
      (3,'2014-05-07','ATM Withdrawal',-450), 
      (4,'2014-05-08','Cash Deposited',1000); 

WITH cte 
    AS (SELECT *, 
       CASE WHEN Tr_Amt > 0 THEN CONVERT(VARCHAR(50), Tr_Amt) ELSE '' END [Cash Deposited], 
       CASE WHEN Tr_Amt < 0 THEN CONVERT(VARCHAR(50), Tr_Amt) ELSE '' END [Cash Withdrawal], 
       Tr_Amt Balance 
     FROM #tt) 
SELECT Tr_Date, 
     Tr_Remarks, 
     [Cash Deposited], 
     [Cash Withdrawal], 
     (SELECT Sum(Balance) Balance 
     FROM cte a 
     WHERE a.Tr_Date <= b.Tr_Date) AS Balance 
FROM cte b 

OUTPUT

Tr_Date  Tr_Remarks    Cash Deposited Cash Withdrawal Balance 
---------- --------------   -------------- --------------- ------- 
2014-05-05 Cash Deposited   1000       1000 
2014-05-06 Credit Card Withdrawal     -250   750 
2014-05-07 ATM Withdrawal       -450   300 
2014-05-08 Cash Deposited   1000       1300 
+1

누군가의 숙제가 방금 완료되었습니다. 아무것도 배웠다. – Fred