sql - 无效标识符:sql中多列的总和
问题描述
我正在尝试计算此查询中的多列
SELECT
SUM (CASE WHEN B.ID = 1 THEN 1 END) AS OPD,
SUM (CASE WHEN B.ID = 2 THEN 1 END) AS IPD,
SUM (CASE WHEN B.ID = 3 THEN 1 END) AS DC,
SUM (CASE WHEN B.ID = 4 THEN 1 END) AS PROC,
SUM (CASE WHEN B.ID = 5 THEN 1 END) AS SUR,
(OPD + IPD + PROC) as Total
FROM REF_TB_APP_TRANSACTIONS A,
REF_VW_VISIT_TYPE B
WHERE A.REQ_VISIT_TYPE = B.ID
AND A.TO_EST_CODE = 20068;
但我收到此错误 PROC invalid identifier
解决方案
您不能直接SUMS
在Total
列中添加三个SELECT
,因为您使用的是这些列的别名。你可以只Total
用另一个SUM CASE
.
SELECT
SUM (CASE WHEN B.ID = 1 THEN 1 END) AS OPD,
SUM (CASE WHEN B.ID = 2 THEN 1 END) AS IPD,
SUM (CASE WHEN B.ID = 3 THEN 1 END) AS DC,
SUM (CASE WHEN B.ID = 4 THEN 1 END) AS [PROC],
SUM (CASE WHEN B.ID = 5 THEN 1 END) AS SUR,
SUM (CASE WHEN B.ID IN (1,2,4)THEN 1 END) AS Total
FROM REF_TB_APP_TRANSACTIONS A,
REF_VW_VISIT_TYPE B
WHERE A.REQ_VISIT_TYPE = B.ID
AND A.TO_EST_CODE = 20068;
推荐阅读
- javascript - 如何将 Javascript keyCode 转换为 charCode?
- ansible - Ansible:如何在一处更换主机
- php - PHP 按日期分组数组
- python - 根据关键字选择多个 PDF 并使用 Python boto3 将它们上传到 S3 存储桶中
- python - 使用 BinaryJSONField 的 peewee 过滤器?
- python - 需要创建一个接受 3 个值并计算出三个数字的最大值和平均值的 python 函数。我的代码没有运行,不知道为什么
- javascript - 为什么我的 Adler-32 哈希函数每次都漏一个零?
- node.js - 如何使用 NodeJS 将传入请求记录到 Playwright Chromium 服务器?
- c++ - 将 byte* 转换为具有 8 个或更少字节的 std::string 会导致崩溃
- mysql - 如果一列或两列或两列都没有设置非空值,则 MySQL 触发器进行标记