2012-02-29 11 views
0

友人後続の行に同じ値の出力をスキップ

私はテーブルからtblABC tbale

OUTPUT 
    ====== 

    SrNo.   Date    BillNo   Amount 
    ================================================= 
    1   10-02-2012   VAT-1   1200.00 
    2        RET-4    50.00 
    3        RET-5    150.50 
    4   11-02-2012   VAT-2   1500.00 
    5        RET-6   2505.00 
    6   12-02-2012   VAT-3    05.00 

からSQLクエリと出力の種類を以下のしたい次いるデータ

 tblABC 
    ====== 

    SrNo.   Date    BillNo   Amount 
    ================================================= 
    1   10-02-2012   VAT-1   1200.00 
    2   10-02-2012   RET-4    50.00 
    3   10-02-2012   RET-5    150.50 
    4   11-02-2012   VAT-2   1500.00 
    5   11-02-2012   RET-6   2505.00 
    6   12-02-2012   VAT-3    05.00 

私が望むOUTPUTとテーブルの違いは です。OUTPUT私はテーブルにあるようにDate Reptetionを望んでいません。

どうすればいいですか?

+1

最後に出力した場合は、コードを表示しますか? –

+2

なぜこの値を残しておきたいのですか?クライアントアプリケーションは、データを表示するときに行ごとにループする必要があります。最後の値を追跡し、現在の値が同じ場合は表示しませんか? –

+0

大量のデータの場合、ループが多く時間がかかる – Varinder

答えて

-1

selectステートメントのcaseキーワードを使用します。 http://msdn.microsoft.com/en-us/library/ms181765.aspx

+0

これはあまり役に立ちません。選択リストにケース式を追加するだけで、ここでどのように役立つのか説明できますか? –

1
DECLARE @tblABC TABLE 
(
    SrNo INT, [Date] DATETIME, BillNo CHAR(5), Amount DECIMAL(10,2) 
); 

INSERT @tblABC SELECT 1,'20120210','VAT-1',1200.00 
UNION ALL SELECT 2,'20120210','RET-4',50.00 
UNION ALL SELECT 3,'20120210','RET-5',150.50 
UNION ALL SELECT 4,'20120211','VAT-2',1500.00 
UNION ALL SELECT 5,'20120211','RET-6',2505.00 
UNION ALL SELECT 6,'20120212','VAT-3',05.00; 

;WITH x AS 
(
    SELECT SrNo, [Date] = REPLACE(CONVERT(CHAR(10), [Date], 103), '/', '-'), 
    BillNo, Amount, rn = ROW_NUMBER() OVER (PARTITION BY [Date] ORDER BY SrNo) 
    FROM @tblAbC 
) 
SELECT SrNo, [Date] = CASE rn WHEN 1 THEN [Date] ELSE '' END, BillNo, Amount 
    FROM x 
    ORDER BY SrNo; 
+0

こんにちはAaronあなたの答えは正しいですが、私はrn(RowNumber)で私は質問を実行したときに出力を得ることができませんrnは1から数え始めて別の日付を取得しません。私は次の日に再び1から始まる方法を得ていません – Varinder

+0

ウィンドウ関数は、PARTITION BY(グループ化)とORDER BY(ランキング)を使って数値を割り当てます。英語では、同じ日付のすべての行を取り、SrNoの値に基づいて1,2,3などを渡します。今すぐ次の別の日付のために繰り返します。出力では、グループ化の「最初の」日付を条件付きで表示します。 –

関連する問題