1

私のテーブルはこんな感じです

SlNo    Date                 Session    MemberCode  Litres  Fat     Price   Amount  GS     Col1   Col
16   2013-07-02 16:27:17.000    E           0        1.00   0.00    28.00   28.00   NULL    S     NULL
17   2013-07-08 16:55:26.000    E           1        38.00  3.80    17.56   667.28  4.00    P     NULL
18   2013-07-08 22:10:03.000    E           0        0.00   3.90    17.63   0.00    0.00    GT     -         
19   2013-07-08 23:03:08.000    E           2        2.00   3.50    17.50   35.00   4.00    P      -         
20   2013-07-08 23:03:22.000    E           13       3.90   3.80    17.56   68.48   4.00    P      -         

クエリで結果を取得したい

Date, 
Session, 
Total Members for session, 
Total Litres for Session, 
Total Amount For the Session,  
Fat(Where Col1='GT') as GTFat, 
Price(Where Col1='GT') as GTPrice, 
NetAmount as GTPrice * (TotalLitres for Session), 
Profit or Loss(NetAmount-Session Amount)

どうすれば結果を得ることができるか教えてください。

前もって感謝します

このコードを試してみましたが、日付の比較に問題があるため、必要な結果を得ることができませんでした

DECLARE @t TABLE (SlNo INT IDENTITY (1, 1) NOT NULL, Date DATETIME, Session VARCHAR(30), TotalMembers INT, TotalLitres DECIMAL(8, 2), Amount DECIMAL(8, 2), 
GTFat DECIMAL(8, 2), GTPrice DECIMAL(8, 2), GTAmount DECIMAL(8, 2), PnL DECIMAL(8, 2)); 
INSERT INTO @t (Date, Session, TotalMembers, TotalLitres, Amount)        
SELECT  Cast(Date as date), Session, Count(MemberCode), Sum(Litres), Sum(Amount)  FROM   myTable Where Col1 = 'P' and Date between '2013-07-01'  and '2013-07-09' GROUP BY Cast(Date as Date), Session Order By Cast(Date as date)

declare @maxcount int,@loop int
    declare @GTAmt money,@PL money
    set @loop =1
    select @maxcount= MAX(SlNo ) from @t
while(@loop <= @maxcount)
    begin
Update @t Set GTFat = (Select Fat From myTable Where Date=Date and Session=Session and Col1='GT'),GTPrice=(Select Price From myTable Where Date=Date and Session=Session and Col1='GT')
set @loop = @loop + 1
end 
SELECT * FROM @t order by Cast(Date as date)
4

2 に答える 2

0

このようなものが必要だと思いますが、正味額とはどういう意味ですか?あなたはそれを計算したいですか?日付、セッション、セッションの総メンバー、セッションの総リットル、セッションの総量
、GTFat としての Fat (Col1='GT')、GTPrice としての価格 (Col1='GT')、GTPrice としての NetAmount * (TotalLitresセッションの場合)、利益または損失(NetAmount-Session Amount)

選択する

 Date, 
Session, 
COUNT(Session) AS TotalnumberForSession,
SUM(amount) AS TotalSumAmount,
CASE 
    WHEN Col1 = 'GT' THEN Fat
    ELSE NULL
END AS GTPrice,
CASE 
    WHEN Col1 = 'GT' THEN Price
    ELSE NULL
END AS GTFAT,
amount*SUM(litres) OVER (PARTITION BY session)
于 2013-07-09T09:37:36.657 に答える