Sql查询帮助 - 从CASE WHEN语句中删除重复项

时间:2017-12-23 08:26:37

标签: sql sql-server

在编写查询以查看客户是否有特定产品时,我需要帮助。

正如您将从第一张图片中看到的那样,ID 4169137已返回2行。我真的想将结果合并到信号行中。意思是,如果任一行中都有YES,则返回YES。如果它们都是NO,则返回NO。

enter image description here

以下是我希望输出的样子。

enter image description here

以下是我一直在使用的查询。

SELECT  distinct A.ID as 'ID'
        ,(CASE WHEN b.isProductA = 1    THEN 'Yes' ELSE 'No' END) as 'A'
        ,(CASE WHEN b.isProductB = 1    THEN 'Yes' ELSE 'No' END) as 'B'
        ,(CASE WHEN b.isProductC = 1    THEN 'Yes' ELSE 'No' END) as 'C'        
        ,(CASE WHEN b.isProductD = 1    THEN 'Yes' ELSE 'No' END) as 'D'    
        ,(CASE WHEN b.isProductE = 1    THEN 'Yes' ELSE 'No' END) as 'E'
        ,(CASE WHEN b.isProductF = 1    THEN 'Yes' ELSE 'No' END) as 'F'                         
FROM  [source].[Opportunity] A 
        INNER JOIN
        (
            SELECT  distinct ProductFamilyName, isProductA, isProductB, isProductC, isProductD, isProductE, isProductF
            FROM [reference].[ProductFamilyMapping] B
        ) b ON a.ProductFamily = b.ProductFamilyName

2 个答案:

答案 0 :(得分:3)

不需要大小写,只需直接使用聚合函数:

public class TabbedPageRenderer : TabbedRenderer
{
    private MainPage _page;

    private void OnTabBarReselected(object sender, UITabBarSelectionEventArgs e)
    {

        ...
            pauseCard = false;
        ...

<强> Results

SELECT ID, 
  MAX(A) AS A,
  MAX(B) AS B,
  MAX(C) AS C,
  MAX(D) AS D,
  MAX(E) AS E,
  MAX(F) AS F
FROM ...
GROUP BY ID;

答案 1 :(得分:1)

试试这个

php --version