首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多行的列值作为链接项的列返回

将多行的列值作为链接项的列返回
EN

Stack Overflow用户
提问于 2013-01-19 17:11:44
回答 1查看 756关注 0票数 0

我有一个(简化的)表,其结构如下:

代码语言:javascript
复制
Table: ItemData

PK | ScanCode | StoreFK | Retail | ReceiptAlias
1  | 100101   | 1       | 4.99   | Milk
4  | 100101   | 2       | 4.99   | Milk
7  | 100101   | 3       | 0.99   | Milk
2  | 100102   | 1       | 6.99   | Eggs
5  | 100102   | 2       | 6.99   | Eggs
8  | 100102   | 3       | 6.99   | Eggs
3  | 100103   | 1       | 7.99   | Bread
6  | 100103   | 2       | 8.99   | Bread
9  | 100103   | 3       | 9.99   | Bread

我可以使用以下SQL查询获得以下返回结果,其中显示了在一个或多个商店中具有不同零售功能的所有商品:见这个先前提出的问题。

SQL查询:

代码语言:javascript
复制
SELECT   im.INV_ScanCode     AS ScanCode,
         name.ItemData AS im
GROUP BY ScanCode, Receipt_Alias
HAVING   COUNT(DISTINCT im.Retail) > 1
ORDER BY ScanCode

电流返回结果:

代码语言:javascript
复制
ScanCode | Receipt_Alias 
100101   | Milk
100103   | Bread

我想返回所有在一个或多个商店()有不同零售的商品,以及在每个商店地点的零售商品:

期望返回结果:

代码语言:javascript
复制
ScanCode | Receipt_Alias | Str_1 | Str_2 | Str_3
100101   | Milk          | 4.99  | 4.99  | 0.99
100103   | Bread         | 7.99  | 8.99  | 9.99

如何将SQL查询更改为包括每个商店位置的零售?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-19 17:14:42

代码语言:javascript
复制
SELECT  ScanCode as ItemID,
        ReceiptAlias,
        MAX(CASE WHEN StoreFK = 1 THEN Retail ELSE NULL END) Store_1,
        MAX(CASE WHEN StoreFK = 2 THEN Retail ELSE NULL END) Store_2,
        MAX(CASE WHEN StoreFK = 3 THEN Retail ELSE NULL END) Store_3
FROM    ItemData
GROUP   BY ScanCode, ReceiptAlias
HAVING  COUNT(DISTINCT Retail) > 1
  • SQLFiddle演示
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14416733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档