select A.CARTONNO1 from (
SELECT (CASE WHEN COUNT(1) = 1 AND count(count(*)) over()=2 AND MNFLET1 IS NOT NULL THEN MNFLET1 || '0001'
WHEN COUNT(1) = 1 AND count(count(*)) over()=1 THEN 'XXX001' END) CARTONNO1, count(count(*)) over() AS RS
FROM(
SELECT DISTINCT TRIM(M33MNFLET) MNFLET1
FROM ZTD12,ZTD12A,ZTF14C,ZTF14A,ZTM100,ZTM33
where D12COMCOD = D12ACOMCOD AND D12PCNUM = D12APCNUM AND D12PCVER = D12APCVER
AND D12CURFLG = 'Y' AND D12STS = '050'
AND M33COMCOD = D12COMCOD AND M33MNFCOD = D12MNFCOD
AND M100FRNCOD = F14AFRNCOD AND M100ORDMKT <> D12AMKTCOD
AND D12COMCOD = F14CCOMCOD AND D12PLUNUM = F14CREFPLUNUM
AND F14ACOMCOD = F14CCOMCOD AND F14AFRNCOD = F14CFRNCOD AND F14APNNUM = F14CPNNUM AND F14APNVER = F14CPNVER AND F14ALINNUM = F14CALINNUM
AND F14ACOMCOD = 'ZZ' AND F14AFRNCOD = 'GZFR' AND F14APNNUM = 'PN1200006' AND F14APNVER = 4
UNION ALL
SELECT NULL FROM DUAL
)
GROUP BY MNFLET1
)A
where (A.RS>1 and A.CARTONNO1 is not null) or A.rs=1;
SQL GROUP BY 无记录 COUNT
最新推荐文章于 2024-02-20 14:37:42 发布