ถามเรื่อง Sum Sub Query ค่ะ ช่วยแนะนำตอนที่เอา Sum Sub Query มารวมกันหน่อยคะ
Code (PHP)
SELECT cast(StatDate as date) as VisitDate, sum(NOBEDOCCBFW+NOBEDOCCNEW-NOBEDRETURN- NOBEDUNACKNOWLEDGE) as pretotal,
(SELECT sum(NOBEDOCCBFW+NOBEDOCCNEW-NOBEDRETURN- NOBEDUNACKNOWLEDGE)
FROM DNHOSPITAL_TEST.dbo.HN_STAT_WARD_HEADER
WHERE StatDate BETWEEN '2017-3-1' AND '2017-3-31') as total
FROM DNHOSPITAL_TEST.dbo.HN_STAT_WARD_HEADER
WHERE StatDate BETWEEN '2016-3-1' AND '2016-3-31' group by cast(StatDate as date);
ผลลัพธ์ ออกมา งง ว่าทำไม total ปี 2017 มันคิด Sum ให้ทั้งเดือน
แต่ทำไม pretotal ปี 2016 มัน ไม่ Sum ทั้งเดือนให้ ทั้งๆที่ ปี 2016 ค่ามันควรจะเป็น 3930 คือรวมทั้งเดือน
SELECT cast(StatDate as date) as VisitDate, sum(NOBEDOCCBFW+NOBEDOCCNEW-NOBEDRETURN- NOBEDUNACKNOWLEDGE) as ipdinward_pretotal
FROM DNHOSPITAL_TEST.dbo.HN_STAT_WARD_HEADER
WHERE StatDate BETWEEN '2016-3-1' AND '2016-3-31' group by cast(StatDate as date);
SELECT cast(StatDate as date) as VisitDate, sum(NOBEDOCCBFW+NOBEDOCCNEW-NOBEDRETURN- NOBEDUNACKNOWLEDGE) as ipdinward_total
FROM DNHOSPITAL_TEST.dbo.HN_STAT_WARD_HEADER
WHERE StatDate BETWEEN '2017-3-1' AND '2017-3-31' group by cast(StatDate as date);
SELECT cast(StatDate as date) as VisitDate, sum(NOBEDOCCBFW+NOBEDOCCNEW-NOBEDRETURN- NOBEDUNACKNOWLEDGE) as pretotal,
(SELECT sum(NOBEDOCCBFW+NOBEDOCCNEW-NOBEDRETURN- NOBEDUNACKNOWLEDGE)
FROM DNHOSPITAL_TEST.dbo.HN_STAT_WARD_HEADER
WHERE StatDate BETWEEN '2017-3-1' AND '2017-3-31') as total
FROM DNHOSPITAL_TEST.dbo.HN_STAT_WARD_HEADER
WHERE StatDate BETWEEN '2016-3-1' AND '2016-3-31' group by cast(StatDate as date);
วันที่ใน sub query ถูกฟิกไว้ป่าว ค่าเลยไม่เปลี่ยน
Code (PHP)
WHERE StatDate BETWEEN '2017-3-1' AND '2017-3-31') as total