budda
Goto Top

Während Abfrage auf SQL DB eine Spalte Anhand Kreterien hinzufügen

Moin,

ich möchte in Excel Externe Daten aus eine SQL DB auswerten, hierzu greife ich über externe Daten auf ein SQL View zu.
Nun möchte ich aber zu den Spalten die er mir durch das View zurück gibt eine weitere Spalte wo er Anhand des Nummernkreises einen Wert setzt. Beispiel, die neue Spalte soll heissen "Einkauf" wenn jetzt die Nummer zwischen 1000 und 2000 ist soll ein Ja in die Zeile geschrieben werden, wenn die Nummer zwischen 3000 und 4000 ist ein Nein.

Hab leider noch keinen Weg gefunden eine neue Spalte zu erstellen. Hab die Abfrage mal im SQL Query gemacht, da kann ich zwar die Einschränkung (den Filter) setzen aber keine Spalte anlegen in der dann Abhänig hiervon ein Wert geschrieben wird.


Gibt es da eine Möglichkeit für oder ist das Schlicht und Ergreifend nicht Möglich?

Gruß
Budda

Content-ID: 45886

Url: https://administrator.de/contentid/45886

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

Biber
Biber 30.01.2007 um 11:19:45 Uhr
Goto Top
Moin Budda,

ich bin nicht sicher, ob ich Dein Problem verstehe...

Du kannst doch schon direkt im View berechnete Felder hinterlegen.

So nach dem prinzipiellen Muster
CREATE View Monatsumsatz ( LiefNr, Liefname, Nr, JaNeinFeld) 
 as SELECT
 tab1.LiefNr,
 tab1.Liefname,
 tab1.LaufendeNr,
 Case tab1.Nr >= 1000 and tab1.Nr <2000 then  "Ja"   
 Case tab1.Nr >= 3000 and tab1.Nr <4000 then  "Nein"   
 Case Else "WeißNich"  
End case 
                     
from DBxxx.DB01.MeineTabelleXY tab1

Geht dieser Weg nicht?

Gruß
Biber
Budda
Budda 30.01.2007 um 11:41:51 Uhr
Goto Top
Hi Biber,

ich hab den View nicht erstellt und da nicht so viel Ahnung von.
Wofür sind die Bezeichnungen in der Klammer beim Create? In unserer View gibt es das nicht.
Unten bei der Abfrage wird das Ja bzw Nein ja keiner Spalte zugewiesen, sehe ich das Richtig?
Zudem gibt es die Spalte ja auch nicht ^^

Oder müssen alle Felder dort oben in der Klammer nochmal aufgeführt werden?
Das wäre nen bissel viel, mit der view gibt es über 40 spalten.

//EDIT:
Hat sich erledigt. Hab es hinbekommen. Danke face-smile
Biber
Biber 30.01.2007 um 15:04:45 Uhr
Goto Top
Moin Budda,

Du kannst auch den View so lassen, wie er ist das berechnete Feld zusätzlich dranflanschen.

Beispiel (worst case): Du holst im Moment aus welchen Gründen auch immer ALLE Felder des Views:

SELECT * from DeinView Where <kriterien=whatever>

Dann kannst Du auch dranflanschen:
SELECT Deinview.*, 
Case DeinView.Nr >1000 and DeinView.Nr < 2000 then "Ja" else  
Case DeinView.Nr >3000 and DeinView.Nr < 4000 then "Nein" else  
 "Weiss nich'"   
End as NeuerFeldname
from DeinView Where  <kriterien=whatever>

...aber auf dieser abstrakten Ebene werden wir lange brauchen.
Du musst schon etwas konkreter werden:
- wie sehen das SELECT bzw. die angezeigten Felder heute aus,
- wie sollen sie heute abend aussehen??
- was heißt "eine SQL DB"? Isses eine Oracle 10i oder eine B2/2 8.2 Fixpack 14 oder ....???
- wie greift ihr zu: über handgeschriebene Statements oder irgendeinen Query-Generator ...???

Gruß
Biber
[Edit] Uuups, jetzt hat sich mein Kommentar auch erledigt....
Aber die Lösung des Rätsels bzw. des Problems wüsste ich jetzt auch gern.
[/Edit]
Budda
Budda 02.02.2007 um 12:46:54 Uhr
Goto Top
Ich hab den View mit na case und between angepasst. Also quasi das was du vorgeschlagen hattest ;)

Aber du sagst nen berechnendes Feld dranflanschen. Kann man in einem berechnenden Feld ne SQL Abfrage machen? Das wäre mir neu, wäre aber genail wenn sowas geht face-smile