【问题标题】:How to get the selected data into a single row using SQL如何使用 SQL 将所选数据放入单行
【发布时间】:2014-06-17 21:50:52
【问题描述】:

我正在尝试使用 SQL 将一些数据从数据库导入 Excel。

我正在获取以下列中的数据:

物品#位置数量

但我想以以下格式导入:

项目# Qty@Location1 Qty@Location2 Qty@Location3

选择不同的项目#,
CASE WHEN location="location1" THEN qty END AS QTY@Location1,
CASE WHEN location="location2" THEN qty END AS QTY@Location2,
CASE WHEN location="location3" THEN qty END AS QTY@Location3
从表1

然而,这会返回 3 条记录。有没有办法将它们合并到一行?

【问题讨论】:

标签: sql sql-server


【解决方案1】:

你想做一个聚合:

Select item#,
       MAX(CASE WHEN location="location1" THEN qty END) AS QTY@Location1,
       MAX(CASE WHEN location="location1" THEN qty END) AS QTY@Location1,
       MAX(CASE WHEN location="location1" THEN qty END) AS QTY@Location1
From table1
Group By item#;

【讨论】:

    【解决方案2】:

    是的,我认为聚合行会起作用

    Select item#,
    Sum(CASE WHEN location="location1" THEN qty else 0 END) AS QTY@Location1,
    Sum(CASE WHEN location="location1" THEN qty else 0 END) AS QTY@Location1,
    Sum(CASE WHEN location="location1" THEN qty else 0 END) AS QTY@Location1
    From table1
    group by
    item#
    

    【讨论】:

      【解决方案3】:

      假设“location1”、“location2”和“location3”是你可以做的常量:

      SELECT isnull(isnull(loc1.Item, loc2.Item), loc3.Item)  as Item,
             loc1.Qty as QTY@Location1, loc2.Qty as QTY@Location2, loc3.Qty as QTY@Location3
      FROM 
        (select Item, Qty from table1 where Location = 'location1') as loc1
      FULL JOIN
        (select Item, Qty from table1 where Location = 'location2') as loc2 ON loc1.Item = loc2.Item
      FULL JOIN
        (select Item, Qty from table1 where Location = 'location3') as loc3 ON isnull(loc1.Item, loc2.Item) = loc3.Item
      

      【讨论】:

        【解决方案4】:

        如果您的 DBMS 支持,PIVOT 将非常巧妙地为您完成此操作。 [这是]关于该主题的 SO 问题。

        【讨论】:

          猜你喜欢
          • 2021-02-10
          • 2018-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-21
          • 1970-01-01
          • 2013-09-16
          相关资源
          最近更新 更多