计算包含 EXCEPT 的查询中的行
Counting row from a query that includes an EXCEPT
我有以下查询:
SELECT *
FROM
(SELECT
SREF, DELIVERYDATE, DATEIDENTIFIED, DCID, SUPN, PONUMBER,
FROM
BNHEAD
WHERE
(SUPP = 'Sanchez') AND (STAT = '2')
EXCEPT
SELECT
SREF, DELIVERYDATE, DATEIDENTIFIED, DCID, SUPN, PONUMBER,
FROM
BNHEAD
WHERE
(SUPP = 'sanchez')
AND (STAT = '2')
AND ((STI = 'Yes') AND (RESN = 'third party'))
OR (FORWARDEDTO = 'STI')) t1
ORDER BY
DeliveryDate DESC
如何仅从此查询中获取行计数,如果它为零 return 0 ?我认为它可能需要涉及合并,但我不确定如何。
您只需在外部查询中使用 select count(*)
:
select count(*)
from (select sref . . .
. . .
) t
select count(*)
总是 return 一行(当没有 group by
时)。如果子查询中没有行,它将 return 0
。
我有以下查询:
SELECT *
FROM
(SELECT
SREF, DELIVERYDATE, DATEIDENTIFIED, DCID, SUPN, PONUMBER,
FROM
BNHEAD
WHERE
(SUPP = 'Sanchez') AND (STAT = '2')
EXCEPT
SELECT
SREF, DELIVERYDATE, DATEIDENTIFIED, DCID, SUPN, PONUMBER,
FROM
BNHEAD
WHERE
(SUPP = 'sanchez')
AND (STAT = '2')
AND ((STI = 'Yes') AND (RESN = 'third party'))
OR (FORWARDEDTO = 'STI')) t1
ORDER BY
DeliveryDate DESC
如何仅从此查询中获取行计数,如果它为零 return 0 ?我认为它可能需要涉及合并,但我不确定如何。
您只需在外部查询中使用 select count(*)
:
select count(*)
from (select sref . . .
. . .
) t
select count(*)
总是 return 一行(当没有 group by
时)。如果子查询中没有行,它将 return 0
。