Wenn null dann anderes Feld in VBA/Excel/MSSQL

insomni4

Benutzer
Beiträge
6
Hallo,

ich möchte über Excel/VBA eine MSSQL-Abfrage auf meine Datenbank machen. Das funktioniert soweit auch. Das Problem ist, dass das Feld frei.cwert bei den vielen Datensätzen auch null sein kann. Wenn frei.cwert null ist, soll frei.mwert geschrieben werden. Nur habe ich gar keine Ahnung wie das funktionieren soll.

So schaut mein Select aus:

strQuery = "Select frei.cname, frei.cwert " & _
"From frei " & _
"INNER JOIN vertrag on frei.vertragnr = vertrag.tnr " & _
"INNER JOIN produkt on vertrag.produktnr = produkt.tnr " & _
"Where produkt.tnr = " & produktvalue & " and frei.cwert is not null"

Der Select ist ansich schon korrekt, bloß will ich, wenn cwert null ist mwert reinbringen und nicht mit 'where frei.cwert is not null'.

Hat jemand einen Vorschlag?

Grüße
 
Werbung:
Ich weiß nicht, was ich falsch mache. Ist das so richtig?

strQuery = "Select frei.cname, COALESCE(frei.cwert, frei.mwert) " & _
"From frei " & _
"INNER JOIN vertrag on frei.vertragnr = vertrag.tnr " & _
"INNER JOIN produkt on vertrag.produktnr = produkt.tnr " & _
"Where produkt.tnr = " & produktvalue

Es kommt die Fehlermeldung 'Typenkonflikt', da der erste Datensatz NULL ist...

Grüße
 
Mir ist gerade aufgefallen, dass ein Datensatz alles beide Null hat. Ich habe versucht dies so zu lösen:

COALESCE(frei.cwert, frei.mwert, ' ') , aber es kommen viel zu viele Datensätze jetzt und manchmal steht in der Ausgabe {\rtf1\ansi1\ansicpg1252\deff0\deflang...

Grüße
 
Werbung:
Zurück
Oben