1

グラフィック チャートを満たす SQL クエリを作成しようとしていますが、適切に行う方法がわかりません。これが状況です。チャート タイプは棒グラフで、Y 軸に「メッセージ タイプ」、X 軸に「メッセージ数」をリストし、Y 軸の各値について、「 「メッセージ タイプ」の各ユーザーのメッセージ。このようなもの: http://www.highcharts.com/demo/bar-stacked

私が返したいのは:

SELECT COUNT(Messages.MessageId), Messages.UserName, MessageTypes.Description

それは本当に簡単ですが、私の問題は、「メッセージ」がまったくリンクされていなくても、可能なすべての「メッセージタイプ」を Y 軸に配置したいということです (この場合は COUNT として 0 を使用します)。

私はこれを試しましたが、うまくいきません:

FROM MessageTypes 
LEFT OUTER JOIN Messages ON MessageTypes.MessageTypeId = Messages.MessageTypeId

何か案は?

提供されたヘルプに事前に感謝します。

4

1 に答える 1

1

編集:あなたは私への質問を変更しました!;)

説明と user.name でグループ化し、レコードをカウントし、b/t メッセージとユーザーを左外部結合します。

select
    mt.Description MessageTypeDescription
    , m.UserName -- will be null if no messages exist for a given type
    ,  UserMessageTypeCount = case when m.UserName is null then 0 else COUNT(1) end
from
    MessageTypes mt
    left outer join Messages m
     on mt.MessageTypeId = m.MessageTypeId
group by
    mt.Description
    m.UserName

結果は、ユーザーごとのメッセージ タイプごとのメッセージ数になります。

于 2013-03-28T09:35:27.473 に答える