Ich habe eine Abfrage abgeschlossen, und es funktioniert einwandfrei. Jetzt arbeite ich daran, es so zu ändern, dass die Ausgabe [$0]
statt NULL
anzeigt.
Weiß jemand genau, wie man dazu?SQL Server - Verwenden von ISNULL, um NULL zu lesen
Das ist, was ich tat:
Select I.Store
, I.ISNULL([Inventory $ TOTAL],0)
, S.ISNULL([Sales $ TOTAL],0)
, R.ISNULL([Receipts $ TOTAL],0)
From
(Select Store
, '$'+Cast(Sum(QTY*Cost) As Varchar(20)) [Inventory $ TOTAL]
From Inventory Group By Store
) I
Left Outer Join
(Select Store
, '$'+Cast(Sum(QTY*Unit_Price) As Varchar(20)) [Sales $ TOTAL]
From Sales Group By Store
) S
On S.Store = I.Store
Left Outer Join
(Select Store
, '$'+Cast(Sum(QTY*Unit_Cost) As Varchar(20)) [Receipts $ TOTAL]
From Receipts Group By Store
) R
On R.Store = I.Store
- Hier ist der Ausgang
Store Inventory TOTAL SALES TOTAL RECEIPTS TOTAL
01 $852.94 $12371.41 $1015.16
02 $4192.21 $3714.74 NULL
03 $215.73 NULL NULL
ISNULL() ist genau wie Sie eine gute Lösung, wenn Sie einen einzelnen Wert testen. COALESCE ist großartig, wenn Sie den ersten Nullwert von mehr als nur 1 haben möchten. Sie können wahrscheinlich Ihre gesamte Abfrage in einem Statement mit einem linken Join im Speicher zwischen Ihren Tabellen schreiben, aber das ist noch etwas zu lernen. – Matt