【发布时间】:2017-07-20 21:21:43
【问题描述】:
我编写了两个单独的查询并尝试合并,但这对我来说太复杂了。第一个查询是返回经销商编号列表的子查询,没有任何重复的编号。第二个查询返回经销商编号列表,其中包含多个重复的经销商编号,以及经销商余额。我需要查看第一个查询中的经销商编号出现在第二个查询中的次数。目前,我将两个查询结果复制并粘贴到 Excel 中,然后使用 Countif 函数查看第一个查询中的经销商出现在第二个查询中的次数。
有没有办法在 SQL 中完成整个过程?
查询 1
SELECT DISTINCT(X.PARENTS) AS "UNIQUE PARENTS" FROM ( SELECT
CASE WHEN PARENT_CUSTMR_NBR IS NULL THEN CUSTMR_NBR ELSE PARENT_CUSTMR_NBR END AS "PARENTS",
CASE WHEN ((SUM(decode(CUSTMR_COLLAT_TYPE_DESCR,'New Car',1,0)) ) ) <> 0 THEN 'Y' ELSE 'N' END AS "FRANCHISE"
FROM MONTH_END_TABLE
WHERE TRUST_ID IS NOT NULL AND EXTRCT_FILE_DT = '30-JUN-2017'
GROUP BY CASE WHEN PARENT_CUSTMR_NBR IS NULL THEN CUSTMR_NBR ELSE PARENT_CUSTMR_NBR END, CUSTMR_NBR
) X
WHERE X.FRANCHISE = 'N'
查询 2
SELECT CASE WHEN PARENT_CUSTMR_NBR IS NULL THEN CUSTMR_NBR ELSE PARENT_CUSTMR_NBR END AS "DUPLICATE PARENTS",
SUM(CURR_PRINCPL_AMT)
FROM MONTH_END_TABLE
WHERE TRUST_ID IS NOT NULL
AND EXTRCT_FILE_DT = '30-JUN-2017'
AND (CASE WHEN PARENT_CUSTMR_NBR IS NULL THEN CUSTMR_NBR ELSE PARENT_CUSTMR_NBR END <>CUSTMR_NBR)
GROUP BY CASE WHEN PARENT_CUSTMR_NBR IS NULL THEN CUSTMR_NBR ELSE PARENT_CUSTMR_NBR END, CUSTMR_NBR
【问题讨论】:
标签: sql count subquery case-when