簡體   English   中英

將列的每個唯一值分解為多列,然后顯示在單行中

[英]break out each unique value of a column into multiple columns then display in single row

在我的實際數據中,我有以下查詢

SELECT Sales Person,
        (CASE WHEN [ProductType] = 'car' THEN [GOAL_VOLUME]
          END) AS 'car Goal'
    , (CASE WHEN [ProductType] = 'boat' THEN [GOAL_VOLUME]
          END) AS 'boat Goal'
    , (CASE WHEN [ProductType] IN ('bike', 'scooter') THEN [GOAL_VOLUME]
          END) AS 'bike/scooter Goal'
FROM PRODUCT_GOALS

我目前的結果是每個銷售人員的名字被分成 3 行,每行只有一個非空值的 Goal_Volume ......我需要一行中的所有內容......可能需要多個子查詢來加入每個產品? 見下圖。

在此處輸入圖片說明

謝謝您的幫助

您可以使用條件聚合:

SELECT [Sales Person]
    , MAX(CASE WHEN [ProductType] = 'car' THEN [GOAL_VOLUME]
          END) AS 'car Goal'
    , MAX(CASE WHEN [ProductType] = 'boat' THEN [GOAL_VOLUME]
          END) AS 'boat Goal'
    , MAX(CASE WHEN [ProductType] IN ('bike', 'scooter') THEN [GOAL_VOLUME]
          END) AS 'bike/scooter Goal'
FROM PRODUCT_GOALS
GROUP BY [Sales Person]

與您的查詢幾乎相同,只是添加了MAXGROUP BY

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM