1

私は、顧客がどのようにして私たちのことを知ったか (つまり、グーグル、叫び声、口コミなど) を報告できるクエリを作成しようとしています。

私は2つのテーブルを持っています:

Customer
  name
  CreatedDate
  SourceID

Sources
  SourceID
  SourceName

このクエリ:

SELECT Customer.CreatedDate, Source.SourceName
FROM Customer INNER JOIN
Source ON Customer.SourceID = Source.SourceID

ログに記録された日付ごとのすべてのソースのリストが表示されます。

2011-05-05 00:00:00:000  Word Of Mouth
2011-05-05 00:00:00:000  Word Of Mouth
2011-05-05 00:00:00:000  Word Of Mouth
2011-05-05 00:00:00:000  Walk In
2011-05-05 00:00:00:000  Yell.com
2011-05-05 00:00:00:000  Google Search

私が取得しようとしているのは、円グラフとレポートにインポートできるリストです。

January 2013
Word of Mouth: 15
Walk In: 5
Google Search: 6
Yell.com 5

February 2013
Word of Mouth: 11
Walk In: 0
Google Search: 8
Yell.com 3

しかし、このレポートをどのように作成すればよいかわかりません。

4

1 に答える 1

4
SELECT [Month] = DATEADD(MONTH, DATEDIFF(MONTH, 0, c.CreatedDate), 0),
  s.SourceName,
  c = COUNT(*)
FROM dbo.Customer AS c
INNER JOIN dbo.Source AS s
ON c.SourceID = s.SourceID
GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, c.CreatedDate), 0),
  s.SourceName
ORDER BY [Month], s.SourceName;

特定の月のみが必要な場合は、次のようにします。

SELECT s.SourceName, c = COUNT(*)
FROM dbo.Customer AS c
INNER JOIN dbo.Source AS s
ON c.SourceID = s.SourceID
WHERE c.CreatedDate >= '20130101'
AND c.CreatedDate < '20130201'
GROUP BY s.SourceName
ORDER BY s.SourceName;
于 2013-03-11T18:43:08.540 に答える