SQL, wenn keine Zeilen zurückgegeben werden dies tun
Ich habe eine select-Anweisung, und ich will sagen, wenn diese select-Anweisung hat keine Zeilen zurückgibt, dann setzen Sie einen " in jeder Zelle. Wie mache ich das?
In jeder Zelle, was?
"In je Zelle, was? Eine SSRS-Bericht? Eine Excel-Tabelle?
Ich habe 2 Einheiten. 1 Daten und 1 nicht. Ich möchte zeigen die 1-Einheiten Daten, sondern zeigen nur Rohlinge, die für alle anderen Einheiten Daten, die keine Daten aufweist. Wenn das macht keinen Sinn?
ja, sein gehen zu sein für eine SSRS-Bericht
Macht es mehr Sinn, wenn wir den code sehen und einige Beispiel-Daten.
"In je Zelle, was? Eine SSRS-Bericht? Eine Excel-Tabelle?
Ich habe 2 Einheiten. 1 Daten und 1 nicht. Ich möchte zeigen die 1-Einheiten Daten, sondern zeigen nur Rohlinge, die für alle anderen Einheiten Daten, die keine Daten aufweist. Wenn das macht keinen Sinn?
ja, sein gehen zu sein für eine SSRS-Bericht
Macht es mehr Sinn, wenn wir den code sehen und einige Beispiel-Daten.
InformationsquelleAutor user380432 | 2010-09-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es klingt wie Sie sind immer noch nicht alle Zeilen, die Sie wollen. Wahr? Ich denke, @Joe Sefanelli stellt einen wichtigen Teil zu Ihrer Lösung, und dann erwähnt, dass Sie sich ändern müssen, INNER LEFT joins.
So, Sie sagen, Sie möchten die Anzeige alle Einheiten in Ihre Einheiten Liste. Und, wenn es gibt keine Daten für ein Gerät, dann zeigt die Einheit und Rohlinge für Daten, die nicht vorhanden ist.
Hier ist eine mögliche Lösung. Ändern der FROM-Klausel verwenden, um die folgenden:
Mit dieser änderung erhalten Sie eine Liste der Einheiten, die in der @ - Einheiten Liste. Der left-outer-joins enthalten Daten, die im Zusammenhang mit jeder Einheit, wird aber nicht ausschließen, dass Einheiten, wenn es keine zugehörigen Daten.
Oops. falsch verstanden, Ihr Kommentar über die where-Klausel.
Ja, ich glaube, wir sind aber das gibt nichts wieder....hmmm.
die Einheit auch keine Einheit geben...
Neue version, die verwendet abgeleiteten Tabelle erzeugen, Daten aus [IUA], [Berichte] und [STATUS]. Dann, Verknüpfungen zu anderen Tabellen.
InformationsquelleAutor bobs
Aber stellen Sie sicher, dass Sie verstehen, dass
''
kann einen anderen Datentyp als Spaltena
,b
, undc
.InformationsquelleAutor tenfour
Versuchen, diese -
Für dein zweites Gerät, wo Sie wollen, um zu zeigen, leere Daten-siehe Antwort von tenfour. Würde das helfen?
es ist die erste Abfrage im OP
InformationsquelleAutor Sachin Shanbhag
Legen Sie Ihre leere Zeile wählen Sie unten eine union
InformationsquelleAutor Rawheiser
Basierend auf den geposteten code, ich glaube, du bist auf der Suche nach leeren sich die Spalten aus der UnitType Tabelle, das ist die einzige bist du Links-Beitritt an. In diesem Fall verwenden Sie
Dann einige Ihrer aktuellen INNER joins werden müssen, LEFT joins statt, je nachdem, welche Tabelle(N), die Sie ' re nicht finden, die eine übereinstimmende Zeile in. Dann verwenden Sie ISNULL wie in meiner Antwort auf leere Spalten als gut.
Die Tabelle, die nicht über eine match-Reihe in IUA, also weiß ich nicht genau, was ich tun würde, hier und die meisten haben Konvertierungsfehler, wenn dabei ISNULL
ISNULL gibt eine Spalte den gleichen Datentyp wie der Ausdruck, den Sie testen. Einige Umstellung notwendig sein kann, um zurück " in die Fälle.
InformationsquelleAutor Joe Stefanelli
max gibt eine
null
wo keine Zeilen dannisnull
Funktion gibt' '
stattdessen einenull
WertInformationsquelleAutor lols
Hier ist ein Beispiel, die ich für eine einzelne Spalte - es ist einfach und erzeugt nur eine leere Zeile, wenn es keine Spiele im dataset.
Dies schafft eine Reihe von leer(s), wenn es keine Spiele.
InformationsquelleAutor some_yahoo