如何通过 SQL 查询选择集合数据?
Posted
技术标签:
【中文标题】如何通过 SQL 查询选择集合数据?【英文标题】:How to select Collective data through SQL query? 【发布时间】:2015-05-19 19:57:01 【问题描述】:SELECT COUNT(a.running_ID)
,a.operation_name
,a.return_Code
FROM log_master_2may_q9 a
,log_detail_2may_q9 b
WHERE a.execution_id = b.execution_id
AND b.type = 'MSISDN'
AND operation_name IN ( 'manageProfile', 'getPayment' )
GROUP BY a.return_Code
,a.operation_name;
这里发生的情况是我从多个返回代码中获取数据,例如“101”、“102”、“902”代表失败,返回代码“100”和“S”代表成功。
每次 return_Code 我都会得到一些计数。
现在我想要的是为失败代码和成功代码找到的集合数据。
我尝试使用 Concat 命令进行上述查询,但出现错误。
有人可以帮忙吗?
附加信息:
数据来自这里的多个表。
输出是这样的:
Count(A.running_ID) operation_name record_code 第765章 102 14 管理档案 102 10 获取付款 902 第661章 262 管理档案 100 11737 获得付款 100 20 获取支付 101
【问题讨论】:
【参考方案1】:SELECT
Sum(case When a.return_Code = '101' then 1 end) Code101Total,
Sum(case When a.return_Code = '102' then 1 end) Code102Total,
Sum(case When a.return_Code = '902' then 1 end) Code902Total,
Sum(case When a.return_Code = '100' then 1 end) Code100Total,
Sum(case When a.return_Code = '100' then 1 end) Code100Total,
Sum(case When a.return_Code In ('101', '102', '902') then 1 end) Fails,
Sum(case When a.return_Code = '100' then 1 end) SuccessesTotal
FROM log_master_2may_q9 a
join log_detail_2may_q9 b
on b.execution_id = a.execution_id
WHERE b.type = 'MSISDN'
AND operation_name IN ( 'manageProfile', 'getPayment' )
GROUP BY a.return_Code
【讨论】:
它没有给出想要的结果。与此一样,我只是获得带有错误代码名称的附加列,但需要的是如果:对于操作名称“manageprofile”,如果我收到错误代码“902”并将 20 视为计数,那么对于“101”代码,将其视为 780 和对于“102”,它的 56 应该只显示一列失败,其中上述三列的总和应该为 856。 根据我的需要对您提供的查询进行了一些修改,现在它对我有用。谢谢查尔斯....以上是关于如何通过 SQL 查询选择集合数据?的主要内容,如果未能解决你的问题,请参考以下文章