【发布时间】:2021-09-03 16:10:30
【问题描述】:
我对 SQL 相当陌生,我正在使用 db2。我有以下两个单独的查询,它们自己返回预期结果。但是,我希望将查询 2 的总数除以查询 1 的结果。
查询 1:
select count(*) total
from ltl400tst3.frp001
JOIN ETLLIB.CYMD_TO_DATE
ON fhpdat = cymd_date
left join ltl400mod3.pup092
on pcpro = fhpro
left join LTL400MOD3.PUP090
on PCNUM = PANUM and PCTID = PATID
left join ltl400mod3.pup300 on pctid = cotid and pcnum = conum and pcline = coline and fhccd = coccd
WHERE fhbtc in ('6A16579', '6R16579') and PASTAT != 'C' and DATE = '2021-09-01';
查询 2:
select Date, case cqtype when 'O' then 'Override' when 'S' then 'Alert' else 'Other' end record_type, count(*) total
from LTL400MOD3.PUP301
left join LTL400MOD3.PUP300
on COTID = CQTID and CONUM = CQNUM and COLINE = CQLINE
join ETLLIB.CYMD_TO_DATE
on (CAST(CQRSSTMP AS DATE)) = DATE
left join MASTER.ACCOUNT_HIERARCHY
on COCCD = ACCOUNT
where ((CQSACIID = '17') or (TOP_LEVEL_ACCOUNT = '0P16579')) and DATE = '2021-09-01'
group by date, CQTYPE;
我的第一个想法是使用 CTE,但我在格式化表达式以执行来自多个 CTE 的功能时遇到了一些困难。提前感谢您的任何建议。
【问题讨论】:
-
请用句点表示的表名(即
tablename.Date)限定所有列,并说明如何您希望这两个查询加入。您需要对这两个总数进行计算吗?