programing

레코드를 찾을 수 없는 경우 sql이 0을 값으로 가져옵니다.

abcjava 2023. 9. 13. 22:17
반응형

레코드를 찾을 수 없는 경우 sql이 0을 값으로 가져옵니다.

간단한 질문이 있는데 제게 도움이 될 수가 없네요.현재 날짜로 문의를 했고 내일이 화요일이라고 하자 하지만 미래이기 때문에 아직 자료가 없습니다.아직 기록이 남아있을 순 없어요

쿼리를 실행하면 두 개의 열만 표시됩니다.total | Date내 말대로 되는 거지하지만 지금은 나에게 보여주고 싶습니다.0주목하는 대신에 두 개의 열만.

COALESCE를 검색해 보았지만 어떤 이유에서인지 작동하지 않았습니다.

SELECT
    SUM(totalExcl) AS total, 
    DATE_FORMAT(date_add, '%W') AS 'Date'  
FROM
    ex.ps_ox_quotation 
WHERE 
    WEEK(date_add) = WEEK (UTC_TIMESTAMP()) 
        AND saleType IN ('IEW' , 'A', 'Project')
        AND DAYOFWEEK(date_add) % 6 > 4 
GROUP BY Date 
ORDER BY 'Date' DESC 

내가 가진 것(표) =

| |total | Date

원하는 것(표) =

| |total | Date
     0     Tuesday

오늘은 수요일이므로 현재 날짜이며 이것이 표시되는 것입니다(btw 이것은 현재입니다). 그냥 보여주는 것입니다.

| |total | Date
    500    Wednesday

이거 먹어봐요.

SELECT
IF(SUM(totalExcl) is NULL,0,SUM(totalExcl)) AS total, 
DAYNAME(date_add) AS 'Date'  
FROM
ex.ps_ox_quotation 
WHERE 
WEEK(date_add) = WEEK (UTC_TIMESTAMP()) 
    AND saleType IN ('IEW' , 'A', 'Project')
    AND DAYOFWEEK(date_add) % 6 > 4 
GROUP BY Date 
ORDER BY 'Date' DESC 

아니면 이렇게 해도 됩니다.

SELECT
IF(SUM(totalExcl) is NULL,0,SUM(totalExcl)) AS total, 
IF(DATE_FORMAT(date_add, '%W') is null,DAYNAME(now()),DATE_FORMAT(date_add, '%W')) AS 'Date'  
FROM
ex.ps_ox_quotation 
WHERE 
WEEK(date_add) = WEEK (UTC_TIMESTAMP()) 
    AND saleType IN ('IEW' , 'A', 'Project')
    AND DAYOFWEEK(date_add) % 6 > 4 
GROUP BY Date 
ORDER BY 'Date' DESC 

IFNULL로 시도...

SELECT
    IFNULL(SUM(totalExcl),0) AS total, 
    DATE_FORMAT(date_add, '%W') AS 'Date'  
FROM
    ex.ps_ox_quotation 
WHERE 
    WEEK(date_add) = WEEK (UTC_TIMESTAMP()) 
        AND saleType IN ('IEW' , 'A', 'Project')
        AND DAYOFWEEK(date_add) % 6 > 4 
GROUP BY Date 
ORDER BY 'Date' DESC 

언급URL : https://stackoverflow.com/questions/42536463/sql-get-zero-as-value-if-no-records-been-found

반응형