[英]How can I combine 2 queries?
I have these below queries in fastreport.我在 fastreport 中有以下查询。 I would like to combine them together into one query.
我想将它们组合成一个查询。 How can I do this ?
我该怎么做?
SELECT
EAMEMID, COUNT (EAMATTNSTATUS)/2 as ABSENTDAYS1
FROM
viewDAILYSUM
WHERE
(EAMEMID = :EAMEMID)
AND (EAMDATE BETWEEN :FDate AND :TDate)
AND (EAMATTNSTATUS IN (7, 8))
GROUP BY
EAMEMID
ORDER BY
EAMEMID
SELECT
EAMEMID, COUNT(DISTINCT EAMDATE) ABSENTDAYS
FROM
viewDAILYSUM
WHERE
(EAMEMID = :EAMEMID)
AND (EAMDATE BETWEEN :FDate AND :TDate)
AND (EAMATTNSTATUS IN (6))
GROUP BY
EAMEMID
ORDER BY
EAMEMID
You can use conditional aggregation:您可以使用条件聚合:
SELECT EAMEMID,
SUM(CASE WHEN EAMATTNSTATUS in (7, 8) THEN 1 ELSE 0 END) / 2 as ABSENTDAYS1,
COUNT(DISTINCT CASE WHEN EAMATTNSTATUS in (6) THEN EAMDATE
END) as ABSENTDAYS
FROM viewDAILYSUM
WHERE (EAMEMID = :EAMEMID) AND
(EAMDATE between :FDate and :TDate)
GROUP BY EAMEMID
ORDER BY EAMEMID
You can do a join (left because the two select are not the same eamemid) on the dynamic tables你可以在动态表上做一个连接(因为两个选择不是同一个 eamemid)
select
t1.EAMEMID, t1.ABSENTDAYS1, t2.ABSENTDAYS
from
(SELECT
EAMEMID, COUNT (EAMATTNSTATUS)/2 as ABSENTDAYS1
FROM
viewDAILYSUM
WHERE
(EAMEMID = :EAMEMID)
AND (EAMDATE BETWEEN :FDate AND :TDate)
AND (EAMATTNSTATUS IN (7, 8))
GROUP BY
EAMEMID) t1
left join
(SELECT
EAMEMID, COUNT(DISTINCT EAMDATE) ABSENTDAYS
FROM
viewDAILYSUM
WHERE
(EAMEMID = :EAMEMID)
AND (EAMDATE BETWEEN :FDate AND :TDate)
AND (EAMATTNSTATUS IN (6))
GROUP BY
EAMEMID) t2 on t1.EAMEMID = t2.EAMEMID
order by
t1.EAMEMID
You can use union same way:您可以使用union相同的方式:
SELECT * FROM
(
SELECT
1 AS NUMQUERY, EAMEMID, COUNT(EAMATTNSTATUS)/2 as ABSENTDAYS
FROM
viewDAILYSUM
WHERE
(EAMEMID = :EAMEMID)
AND (EAMDATE BETWEEN :FDate AND :TDate)
AND (EAMATTNSTATUS IN (7, 8))
GROUP BY
EAMEMID
UNION
SELECT
2, EAMEMID, COUNT(DISTINCT EAMDATE)
FROM
viewDAILYSUM
WHERE
(EAMEMID = :EAMEMID)
AND (EAMDATE BETWEEN :FDate AND :TDate)
AND (EAMATTNSTATUS IN (6))
GROUP BY
EAMEMID
)
ORDER BY NUMQUERY, EAMEMID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.