2017-03-01 4 views
1

Ich habe eine einfache Frage Ich schaue mich um, aber kann es nicht funktionieren für mich. Ich habe eine Abfrage mit dem aktuellen Datum gemacht und sage, dass morgen Dienstag ist, aber es sind noch keine Daten drin, weil es die Zukunft ist. Und es kann noch keine Aufzeichnung geben.sql null als Wert erhalten, wenn keine Datensätze gefunden wurden

Wenn ich die Abfrage ausführen zeigt es einfach nur 2 Spalten namens total | Date Es tut was ich sage. Aber jetzt will ich es mir 0 anstatt nur 2 Spalten anzeigen.

Ich habe nach COALESCE gesucht, aber aus irgendeinem Grund hat es nicht funktioniert, es gibt mir auch keine Fehler.

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 

Was ich habe (Tabelle) =

| |total | Date 

Was ich will (Tabelle) =

| |total | Date 
    0  Tuesday 

Heute ist Mittwoch, so dass es das aktuelle Datum ist, und das ist, was es zeigt (btw das ist aktuell) ich zeige es gerade:

| |total | Date 
    500 Wednesday 
+0

Ich glaube, Sie brauchen '' @@ ROWCOUNT'' für das – Ditto

Antwort

1

Versuchen Sie, diese

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 

oder Sie können auf diese Weise tun

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 
+0

Danke werde ich so schnell wie möglich versuchen. – Deniz

+0

Ok nach dem Versuch, sag es mir. – denny

+1

Die erste hat funktioniert, aber gibt mir einen NULL in der Spalte Datum. Der zweite hat auch den Job gemacht und gab mir keine Null, sondern den tatsächlichen Tagesnamen in der Spalte Date. Und für beide gab es mir eine Null (o) in der Spalte total, wenn es noch keine Aufzeichnung darin gab, also hat es den Job gemacht. Vielen Dank – Deniz

0

Versuchen mit 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 
Verwandte Themen