質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

2回答

10189閲覧

SQL Serverで月別集計

AMK

総合スコア765

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2016/04/28 04:17

下記のようなテーブルで2014年1月から月別で
得意先コードの数を知りたいのです

とりあえず、下記のSQLで201401月以降のデータを出すことには成功したのですがそこから先で躓いています。

ヤリタイことは、エクセルを併用して何とか出来たのですが
(受注見出し日付の後ろ2桁を削って、ピボットテーブルで出来ました。)
できれば、SQLでスッキリ出してみたいなと思い質問をさせて頂きます。

受注見出日付 得意先コード
20140629 000001
20140629 000002
20140724 000001
20140829 000001
20140829 000002
20140829 000003
20140829 000001

sql

1SELECT [受注見出日付] 2 ,[得意先コード] 3 FROM [販売].[dbo].[受注見出トラン] 4 5where 受注見出日付 >= '20140101' 6and 得意先分類1コード = '01' 7order by 登録日付 asc

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

このようにしてみます。

SQL

1SELECT substring([受注見出日付],1,6) 2 ,count([得意先コード]) 3 FROM [販売].[dbo].[受注見出トラン] 4 group by substring([受注見出日付],1,6)

投稿2016/04/28 04:44

tomato-salada

総合スコア68

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AMK

2016/04/28 05:08

ありがとうございます! SELECT substring([受注見出日付],1,6) as 受注月 ,count([得意先コード]) as 受注入力件数 FROM [販売].[dbo].[受注見出トラン] where 受注見出日付 >= '20140101' and 得意先分類1コード = '01' group by substring([受注見出日付],1,6) order by 受注月 asc これで、解決できました!
ttyp03

2016/04/28 05:17 編集

tomato-saladaさんのクエリだと、8月の件数は4件にならないですか? 3件が正しいのでは?
tomato-salada

2016/04/28 05:26

ttyp03 さんのご指摘のとおりでした。ご指摘ありがとうございました。 以下修正しています。 SELECT a.受注見出日付 ,count(a.得意先コード) as 件数 from( SELECT distinct substring([受注見出日付],1,6) AS 受注見出日付 ,[得意先コード] AS 得意先コード FROM [dbo].[受注見出トラン] group by substring([受注見出日付],1,6),[得意先コード] ) as a group by a.受注見出日付
AMK

2016/04/30 00:00

お世話になります ttyp03様、tomato-salada様 親身に考えていただきありがとうございます! 私の説明が悪かったです、申し訳ないのです。 その月に何件の受注が有ったかを知りたかったので同じ業者様でも2回あれば2件カウントでOKでした。
guest

0

こんな感じでしょうか。

SQL

1SELECT DT, COUNT(得意先コード) FROM 2( 3 SELECT SUBSTRING(受注見出日付,1,6) AS DT, 得意先コード FROM テーブル 4 GROUP BY SUBSTRING(受注見出日付DT,1,6), 得意先コード 5) 6GROUP BY DT

投稿2016/04/28 04:35

編集2016/04/28 04:43
ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AMK

2016/04/28 04:51

ご協力感謝します!! SELECT DT, COUNT(得意先コード) FROM ( SELECT SUBSTRING(受注見出日付,1,6) AS DT, 得意先コード FROM [販売].[dbo].[受注見出トラン] GROUP BY SUBSTRING(受注見出日付DT,1,6), 得意先コード ) GROUP BY DT で、試してみましたが下記のエラーになりました。 メッセージ 156、レベル 15、状態 1、行 6 キーワード 'GROUP' 付近に不適切な構文があります。
ttyp03

2016/04/28 04:54

最初のGROUP BYのここじゃないでしょうか。 SUBSTRING(受注見出日付DT,1,6) 受注見出日付DTになっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問