 |
|
ต้องการนำ Column มาบวกกัน แต่มันติดที่ค่าเป็น null ครับ |
|
 |
|
|
 |
 |
|
Code (SQL)
SELECT DISTINCT F2ITNO, MAX(MMITDS),
(CASE WHEN F2TRDT LIKE '201801%' THEN ISNULL(F2RPQT,0) END )+
(CASE WHEN F2TRDT LIKE '201802%' THEN ISNULL(F2RPQT,0) END )+
(CASE WHEN F2TRDT LIKE '201803%' THEN ISNULL(F2RPQT,0) END )+
(CASE WHEN F2TRDT LIKE '201803%' THEN ISNULL(F2RPQT,0) END )+
(CASE WHEN F2TRDT LIKE '201805%' THEN ISNULL(F2RPQT,0) END ) AS [SUM],
(CASE WHEN F2TRDT LIKE '201801%' THEN F2RPQT END ) AS[j1],
(CASE WHEN F2TRDT LIKE '201801%' THEN F2SCOC END) AS[j2] ,
(CASE WHEN F2TRDT LIKE '201801%' THEN F2RCAC END) AS[j3],
(CASE WHEN F2TRDT LIKE '201802%' THEN F2RPQT END) AS[f1],
(CASE WHEN F2TRDT LIKE '201802%' THEN F2SCOC END) AS[f2] ,
(CASE WHEN F2TRDT LIKE '201802%' THEN F2RCAC END) AS[f3],
(CASE WHEN F2TRDT LIKE '201803%' THEN F2RPQT END) AS[m1],
(CASE WHEN F2TRDT LIKE '201803%' THEN F2SCOC END) AS[m2] ,
(CASE WHEN F2TRDT LIKE '201803%' THEN F2RCAC END) AS[m3],
(CASE WHEN F2TRDT LIKE '201804%' THEN F2RPQT END) AS[n1],
(CASE WHEN F2TRDT LIKE '201804%' THEN F2SCOC END) AS[n2] ,
(CASE WHEN F2TRDT LIKE '201804%' THEN F2RCAC END) AS[n3],
(CASE WHEN F2TRDT LIKE '201805%' THEN F2RPQT END) AS[l1],
(CASE WHEN F2TRDT LIKE '201805%' THEN F2SCOC END) AS[l2] ,
(CASE WHEN F2TRDT LIKE '201805%' THEN F2RCAC END) AS[l3]
FROM MVXJDTA.FGRECL
JOIN MVXJDTA.MITMAS ON MMITNO = F2ITNO
WHERE MMITTY IN('400')
GROUP BY F2ITNO,MMITDS,F2SCOC,F2TRDT,F2RPQT,F2RCAC
ORDER BY F2ITNO ASC
ได้ทำการลองใช้ คำสั่งที่เช็ค Null หมดแล้วครับรบกวนหน่อยครับ
Tag : Ms SQL Server 2014, Ms SQL Server 2016
|
ประวัติการแก้ไข 2018-05-16 10:56:02
|
 |
 |
 |
 |
Date :
2018-05-16 10:53:02 |
By :
1434221519934414 |
View :
1245 |
Reply :
8 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใส่ SUM() ด้วยครับ ....... แล้ว 201803% ไม่รู้เอามาทำไม 2 อัน ตั้งใจหรือลืมว่าต้องเป็น 4 
|
 |
 |
 |
 |
Date :
2018-05-16 11:15:21 |
By :
nPointXer |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
น่าจะ ISULL ไม่ครบนะครับ
|
 |
 |
 |
 |
Date :
2018-05-16 11:15:50 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
COALESCE(F2RPQT,0)
ถ้า F2RPQT เป็น null แทนค่าด้วย 0
isnull(F2RPQT,0) แบบนี้ไม่เคยใช้
เคยใช้ แต่ isnull(F2RPQT) ให้ค่าเป็น 1 หรือ 0 จริง หรือ เท็จ
|
 |
 |
 |
 |
Date :
2018-05-16 16:57:57 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : nPointXer เมื่อวันที่ 2018-05-16 11:15:21
รายละเอียดของการตอบ ::
Code (SQL)
SELECT DISTINCT U.F2ITNO,MMITDS,F2PUNO,
(SELECT TOP 1 coalesce(SUM(F2RPQT),0) FROM MVXJDTA.FGRECL WHERE U.F2ITNO = F2ITNO AND F2TRDT LIKE '201801%') +
(SELECT TOP 1 coalesce(SUM(F2RPQT),0) FROM MVXJDTA.FGRECL WHERE U.F2ITNO = F2ITNO AND F2TRDT LIKE '201802%') +
(SELECT TOP 1 coalesce(SUM(F2RPQT),0) FROM MVXJDTA.FGRECL WHERE U.F2ITNO = F2ITNO AND F2TRDT LIKE '201803%') AS SSS,
(CASE WHEN F2TRDT LIKE '201801%' THEN F2RPQT END) AS[j1],
(CASE WHEN F2TRDT LIKE '201801%' THEN F2SCOC END) AS[j2] ,
(CASE WHEN F2TRDT LIKE '201801%' THEN F2RCAC END) AS[j3],
(CASE WHEN F2TRDT LIKE '201802%' THEN F2RPQT END) AS[f1],
(CASE WHEN F2TRDT LIKE '201802%' THEN F2SCOC END) AS[f2] ,
(CASE WHEN F2TRDT LIKE '201802%' THEN F2RCAC END) AS[f3],
(CASE WHEN F2TRDT LIKE '201803%' THEN F2RPQT END) AS[m1],
(CASE WHEN F2TRDT LIKE '201803%' THEN F2SCOC END) AS[m2] ,
(CASE WHEN F2TRDT LIKE '201803%' THEN F2RCAC END) AS[m3]
FROM MVXJDTA.FGRECL U
left OUTER JOIN MVXJDTA.MITMAS ON MMITNO = U.F2ITNO
WHERE MMITTY IN('400')
GROUP BY U.F2ITNO,MMITDS,U.F2SCOC,U.F2RPQT,U.F2RCAC,U.F2TRDT,F2PUNO
ORDER BY U.F2ITNO ASC
ผมติดที่ว่าต้องการจะเอา column ที่เป็น null ทั้งหมด ให้เอาออกไปครับ ผมใช้ is not null แล้วก็ไม่ออก ผมต้องเอาข้อมูลไป fill ลงใน gridview ครับ
|
 |
 |
 |
 |
Date :
2018-05-18 09:18:31 |
By :
1434221519934414 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
น่าจะเป็นแบบนี้หรือเปล่า
(CASE WHEN F2TRDT LIKE '201801%' THEN coalesce(F2RPQT,'') ELSE '' END) AS[j1],
|
ประวัติการแก้ไข 2018-05-18 14:21:34
 |
 |
 |
 |
Date :
2018-05-18 14:19:34 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|