Hallo in die Runde,
ich habe ein Problem mit einer View die ich bearbeite und mit verschiedenen Bedingungen versehe und ich bin hier nun in einer Sackgasse.
Folgender Aufbau:
Zwei Datenbanken. DB1 enthält Daten, die in einer View dargestellt werden müssen, damit sie dann in DB2 verarbeitet werden können.
DB1 und DB2 gehören zu zwei gänzlich unterschiedlichen Programmen und es handelt sich nur zufällig um MSSQL-Datenbanken.
Bei den Daten handelt es sich um Messestände, die in DB1 gebucht werden und über DB2 grafisch verarbeitet werden. Für die grafische Verarbeitung müssen Daten übergeben werden, dafür gibt es die View.
Ein wichtiger Punkt sind die Statussis (oder Stati?) der Aussteller. Es gibt 'normale' Aussteller, die machen keine Probleme. Dann gibt es noch 'Hauptaussteller' und 'Mitaussteller', das ist wenn Firma A und Firma B zusammen einen Stand haben.
Bei der Buchung wird beim Hauptaussteller (Firma A) so verfahren wie beim 'normalen' Aussteller, allerdings wird beim Mitaussteller (Firma B) ein Feld gefüllt und zwar mit der Buchungsnummer vom Hauptaussteller. Dieses Feld ist nvarchar(500).
Ich brauche nun einen Weg, wie ich das Feld Lieferschein.Nummer (int) von Kunde A mit Lieferschein.Feld4 von Kunde B vergleichen kann, d. h. wenn die Nummer von Kunde A im Feld bei Kunde B steht, dann ist Kunde A Ausstellertyp 2.
Der Teil meiner View, der das bewirken soll sieht so aus:
case
when CONVERT (varchar, "Lieferschein"."Nummer") in ("Lieferschein"."Feld4")
then
2
when "Artikel"."Code" = 80684454 OR "Artikel"."Code" = 221232221 OR "Artikel"."Code" = 40487905
then
3
else
0
END AS AUSSTELLERTYP
Kunde B wird mittels der gebuchten Artikel als Mitaussteller identifiziert, das klappt auch.
Ich dachte, dass die erste Zeile nach 'case' abfragt, ob die Lieferschein Nummer irgendwo im Feld Lieferschein.Feld4 ist und wenn dem so wäre, dann würde der Ausstellertyp 2 gesetzt. Ist aber leider nicht so, alle die nicht 3 werden, werden 0, obwohl die korrekten Nummern in Lieferschein.Feld4 eingegeben wurden.
ich habe ein Problem mit einer View die ich bearbeite und mit verschiedenen Bedingungen versehe und ich bin hier nun in einer Sackgasse.
Folgender Aufbau:
Zwei Datenbanken. DB1 enthält Daten, die in einer View dargestellt werden müssen, damit sie dann in DB2 verarbeitet werden können.
DB1 und DB2 gehören zu zwei gänzlich unterschiedlichen Programmen und es handelt sich nur zufällig um MSSQL-Datenbanken.
Bei den Daten handelt es sich um Messestände, die in DB1 gebucht werden und über DB2 grafisch verarbeitet werden. Für die grafische Verarbeitung müssen Daten übergeben werden, dafür gibt es die View.
Ein wichtiger Punkt sind die Statussis (oder Stati?) der Aussteller. Es gibt 'normale' Aussteller, die machen keine Probleme. Dann gibt es noch 'Hauptaussteller' und 'Mitaussteller', das ist wenn Firma A und Firma B zusammen einen Stand haben.
Bei der Buchung wird beim Hauptaussteller (Firma A) so verfahren wie beim 'normalen' Aussteller, allerdings wird beim Mitaussteller (Firma B) ein Feld gefüllt und zwar mit der Buchungsnummer vom Hauptaussteller. Dieses Feld ist nvarchar(500).
Ich brauche nun einen Weg, wie ich das Feld Lieferschein.Nummer (int) von Kunde A mit Lieferschein.Feld4 von Kunde B vergleichen kann, d. h. wenn die Nummer von Kunde A im Feld bei Kunde B steht, dann ist Kunde A Ausstellertyp 2.
Der Teil meiner View, der das bewirken soll sieht so aus:
case
when CONVERT (varchar, "Lieferschein"."Nummer") in ("Lieferschein"."Feld4")
then
2
when "Artikel"."Code" = 80684454 OR "Artikel"."Code" = 221232221 OR "Artikel"."Code" = 40487905
then
3
else
0
END AS AUSSTELLERTYP
Kunde B wird mittels der gebuchten Artikel als Mitaussteller identifiziert, das klappt auch.
Ich dachte, dass die erste Zeile nach 'case' abfragt, ob die Lieferschein Nummer irgendwo im Feld Lieferschein.Feld4 ist und wenn dem so wäre, dann würde der Ausstellertyp 2 gesetzt. Ist aber leider nicht so, alle die nicht 3 werden, werden 0, obwohl die korrekten Nummern in Lieferschein.Feld4 eingegeben wurden.