2017-02-26 22 views
0

の下にグループ化I、顧客がためのルックアップテーブル/フィルタとして使用される持っているどのように多くの受注確認し、以下の次の表を、持っている私の作成されたのPowerPivotモデルSQL - 単一の顧客ID

| CustomerID | OrderCntOne | OrderCntTwo | OrderCntThree | 
--------------------------------------------------------------- 
| 0   | X   |    |    | 
| 0   |    | X   |    | 
| 0   |    |    | X   | 
| 1   | X   |    |    | 
| 2   | X   |    |    | 
| 3   | X   |    |    | 
| 3   |    | X   |    | 
| 4   | X   |    |    | 
| 4   |    | X   |    | 
| 4   |    |    | X   | 
--------------------------------------------------------------- 

このSQL問合せでは、顧客の注文の数(注文数)を調べ、その顧客が現在まで1日、2日、3日の注文で3つ以上の注文を無視しているかどうかに応じてxを置く。

SELECT [CustomerID], 
    CASE 
     WHEN OrderCount = 1 THEN 'X' 
    END AS OrdCntOne, 
Case 
    WHEN OrderCount = 2 THEN 'X' 
    End as OrdCntTwo, 
Case 
    WHEN OrderCount = 3 THEN 'X' 
End as OrdCntThree, 
FROM [dbo].[Table] 
group by CustomerID, ordercount 

しかし、私はそれが顧客IDごとに1つだけの行

| CustomerID | OrderCntOne | OrderCntTwo | OrderCntThree | 
--------------------------------------------------------------- 
| 0   | X   | X   | X   | 
| 1   | X   |    |    | 
| 2   | X   |    |    | 
| 3   | X   | X   |    | 
| 4   | X   | X   | X   | 
--------------------------------------------------------------- 

が、ちょうど「Xさんと行あたり1つの顧客IDを表示するかどうかはわからないですので、テーブルは次のようになりたいですその1つのIDの横に表示されます。複数の顧客IDの原因となっている注文数のために、顧客IDでグループを行うことはできません。

どのような考えが参考になります。

答えて

4

group byからordercountを削除し、MAXcase個の式より使用してください。

select [CustomerID], 
    max(case when OrderCount = 1 then 'X' end) as OrdCntOne, 
    max(case when OrderCount = 2 then 'X' end) as OrdCntTwo, 
    max(case when OrderCount = 3 then 'X' end) as OrdCntThree 
from [dbo].[Table] 
group by CustomerID; 
+0

ありがとうございました! – Danimov82

関連する問題