2016-08-12 8 views
1

SQL Serverの:私はSQL Serverでこのテーブルを持ってカウント取引

table

私は結果がこの

enter image description here

のように私はカウントするSQLクエリを作成しようと思ってほしいです毎月取引を統合します。

ありがとうございます。

+0

は、 'TXN Date'カラム' varchar'または 'date'タイプですか? – ughai

+0

TXN日付列はint型です –

+0

これを100で割り、このように 'group by'を使用します。TXNT/100、COUNT(*)FROM Table1 GROUP BY TXNDate/100' – ughai

答えて

1

まず、グループ化する列を編集する必要があります。

SELECT 
    A.YYYYMM, 
    COUNT(*) TxnCount 
FROM 
(
    SELECT 
     *, 
     LEFT(TXN_DATE, 6) YYYYMM 
    FROM 
     Tbl 
) A 
GROUP BY 
    A.YYYYMM 
+0

はい、これはうまくいくはずです – NEER

+1

素晴らしい、今日は何か新しいことを学んだ。いつも 'LEFT'は' char'型に特化していると思っています:) – ughai

+0

[LEFT](https://msdn.microsoft.com/en-in/library/ms177601.aspx)は 'int'を' char' – ughai

0

GROUP BY句を使用してトランザクションをカウントできます。 あなたTXN Dateと仮定すると、あなたが次のクエリを使用することができ、date型のものである:

SELECT CONVERT(VARCHAR(6), TXN_DATE, 112) AS YYYYMM, COUNT(*) AS TXN_COUNT 
FROM  MyTable 
GROUP BY CONVERT(VARCHAR(6), TXN_DATE, 112) 
ORDER BY CONVERT(VARCHAR(6), TXN_DATE, 112) 

EDIT:あなたのTXN_DATEintタイプであるため、あなたがとすることにより、以下の

SELECT LEFT(CONVERT(VARCHAR, TXN_DATE), 6) AS YYYYMM, COUNT(*) AS TXN_COUNT 
FROM  MyTable 
GROUP BY LEFT(CONVERT(VARCHAR, TXN_DATE), 6) 
ORDER BY LEFT(CONVERT(VARCHAR, TXN_DATE), 6) 
+0

TXN日付列はint型です – ughai

+0

更新回答 – rcs

0

使用グループを使用することができますがサブストリング

SELECT 
    SUBSTRING(CAST(TXNDate AS VARCHAR(12)),0,9) AS TXNDate,COUNT(*) AS 'TXN Count' 
FROM 
@tblTest 
GROUP BY SUBSTRING(CAST(TXNDate AS VARCHAR(12)),0,9) 
+0

TXN日付列はint型 – ughai

+0

です。もう一度そのタイプで試してみましょう –

+0

私は今すぐチェックを更新しました –

関連する問題