在sql server和sum列中拆分行sql

在sql server和sum列中拆分行sql,sql,sql-server,Sql,Sql Server,嗨,我有一张像这样的桌子: 我的问题是:有可能在一个新表中拆分两行,每个CK类型的总数量是多少 以下是显示结果的图片: 如果CK只有2个值,则可以执行以下操作: SELECT IDEME, MAX(CASE WHEN CK='A' THEN Qty ELSE NULL END) QtyA, MAX(CASE WHEN CK='A' THEN CK

嗨,我有一张像这样的桌子:

我的问题是:有可能在一个新表中拆分两行,每个CK类型的总数量是多少

以下是显示结果的图片:


如果CK只有2个值,则可以执行以下操作:

SELECT
    IDEME,
    MAX(CASE 
             WHEN CK='A' THEN Qty
             ELSE NULL
        END) QtyA,
    MAX(CASE 
             WHEN CK='A' THEN CK
             ELSE NULL
        END) TypeA,
    MAX(CASE 
             WHEN CK='S' THEN Qty
             ELSE NULL
    END) QtyS,
    MAX(CASE 
             WHEN CK='S' THEN CK
             ELSE NULL
    END) TypeS,
    Azienda,
    DataImport,
    Serial
FROM [Table] 
GROUP BY 
    IDEME,
    Azienda,
    DataImport,
    Serial          

如果CK只有2个值,则可以执行以下操作:

SELECT
    IDEME,
    MAX(CASE 
             WHEN CK='A' THEN Qty
             ELSE NULL
        END) QtyA,
    MAX(CASE 
             WHEN CK='A' THEN CK
             ELSE NULL
        END) TypeA,
    MAX(CASE 
             WHEN CK='S' THEN Qty
             ELSE NULL
    END) QtyS,
    MAX(CASE 
             WHEN CK='S' THEN CK
             ELSE NULL
    END) TypeS,
    Azienda,
    DataImport,
    Serial
FROM [Table] 
GROUP BY 
    IDEME,
    Azienda,
    DataImport,
    Serial          

您的CK类型是固定的(只有2个),或者可以更多。如果更多,您需要创建动态Pivot@ArturoAmalfi另一列呢,它们是动态数据还是固定数据?你怎么知道QtyA/QtyB是10/3而不是3/10?也许创建两个列会更简单better@PSKCk可以是s a或sL,但我只得到a和s分组的数量Serial@ArturoAmalfi在Ms Access DB或Excel中的PIVOT选项中也可以执行相同的操作。我认为查询没有那么容易。您的CK类型是固定的(只有2个),或者可以更多。如果更多,您需要创建动态Pivot@ArturoAmalfi另一列呢,它们是动态数据还是固定数据?你怎么知道QtyA/QtyB是10/3而不是3/10?也许创建两个列会更简单better@PSKCk可以是s a或sL,但我只得到a和s分组的数量Serial@ArturoAmalfi您可以在Ms Access DB或Excel中的PIVOT选项中执行相同的操作。我认为查询并没有那么容易。这看起来可以工作,但格式设置使其无法读取。对此表示抱歉,我重新格式化了它-我希望它更可读这看起来像它会工作,但格式使它不可读。很抱歉,我重新格式化了它-我希望它更可读