0

私はテーブルを持っています。今日の決算残高を更新したいということで、tomarrowsの期首残高として表示されるべきです。最終残高の更新が特定の日付に行われた場合、その日付から現在の日付までの期首残高が更新されます。私が望むサンプル出力は次のとおりです。始値(今日)=終値(昨日)

date       opening_balance   closing_balance  accountformatid daybooktype
18-02-2013  12000               15000           1               240
19-02-2013  15000               14000           1               240
20-02-2013  14000               13000           1               240
21-02-2013  13000               10000           1               240
22-02-2013  10000               5000            1               240
23-02-2013  50000               1500            1               240

この達成されたplzが私をどのように助けることができますか

4

1 に答える 1

0

これを試してください:

DECLARE @t TABLE (date DATETIME,      opening_balance  INT, closing_balance  INT,accountformatid INT,daybooktype INT)

INSERT @t 
SELECT CONVERT(DATE, a, 105), b,c,d,e
FROM (VALUES
('18-02-2013',12000  ,15000 ,1,240),
('19-02-2013',15000  ,14000 ,1,240),
('20-02-2013',14000  ,13000 ,1,240),
('21-02-2013',13000  ,10000 ,1,240),
('22-02-2013',10000  ,5000  ,1,240),
('23-02-2013',50000  ,1500  ,1,240)
) tbl(a,b,c,d,e)

SELECT  t1.*
        , t2.*
FROM    @t t1
LEFT JOIN   
        @t t2 ON t1.date = DATEADD(DAY, 1, t2.date)
AND     t1.opening_balance = t2.closing_balance
WHERE   t2.closing_balance IS NULL
-- this prevents first record to be falsely reported
AND     t1.date <> (SELECT MIN(date) FROM @t)

これは、日付と残高が一致しない 2 つの後続レコードの 2 番目をリストします。

于 2013-02-18T12:01:32.770 に答える