sql - 如何按位置而不是按列选择数量?
问题描述
我正在创建一个自定义 SQL 视图,我们可以在其中按位置查找项目数量。目前它在列中完美地提供了信息,但是我可以通过子查询或别名来提供这些信息以使该信息连续出现吗?
我尝试了一个选择子查询,但是它返回
消息 512,级别 16,状态 1,第 1 行
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
SELECT SKU, DESCRIPTION, QUANTITY, LOCATION
FROM INVENTORY
输出:
RB RED BALL 0 OVERSTOCK
RB RED BALL 1 ROOM 1
RB RED BALL 3 ROOM 2
RB RED BALL 5 ROOM 3
我愿意去看:
SKU DESCRIPTION QTYOVERSTOCK QTYROOM1 QTYROOM2 QTYROOM3
--------------------------------------------------------------
RB RED BALL 0 1 3 5
解决方案
您只需要一个基本的数据透视查询:
SELECT
SKU,
DESCRIPTION,
MAX(CASE WHEN LOCATION = 'OVERSTOCK' THEN QUANTITY END) AS QTYOVERSTOCK,
MAX(CASE WHEN LOCATION = 'ROOM 1' THEN QUANTITY END) AS QTYROOM1,
MAX(CASE WHEN LOCATION = 'ROOM 2' THEN QUANTITY END) AS QTYROOM2,
MAX(CASE WHEN LOCATION = 'ROOM 3' THEN QUANTITY END) AS QTYROOM3
FROM INVENTORY
GROUP BY
SKU,
DESCRIPTION;
推荐阅读
- firebase - 如果我将流从 Firebase 传递到另一个颤动屏幕,我是否会再次读取?
- azure - Azure 工作簿:如何按名称将 Azure 工作簿链接到另一个?
- powerbi - 根据日期和小时的条件创建包含值的新列
- excel - Excel 365 VBA 日期在自定义自动过滤器中不起作用
- sql - 如何从 MS Access 中的组合框中选择字段
- c# - 问题将 C# 客户端连接到 Nodejs socket.io
- python - RSS 提要的速率限制 (youtube)
- python - Python if 语句不计算值
- google-analytics - 通过外部 BigQuery 导出 Google Analytics360 数据
- linux - 了解 ELF64 文本/数据段布局/填充