Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL-Abfrage: Ergebnis in Abhängigkeit eines anderen Feldes verändern

Mitglied: fischer-andreas

fischer-andreas (Level 1) - Jetzt verbinden

05.02.2007, aktualisiert 17:48 Uhr, 7882 Aufrufe, 2 Kommentare

SQL-Abfrage mit IIF, um Werte zu beeinflussen

Hallo!
Bin nicht allzu fit in MS SQL, aber brauche eine Lösung für folgendes Problem:
Ich habe einen SQL-Server, in dem ich im Query-Analyzer folgende Abfrage eingegeben habe:



SELECT KOSTKKA.KKa_Nr AS KA, KOSTKKA.KKa_Bez AS KABEZ, right(KOSTKKS.KKs_Nr,4) AS KST, KOSTKKS.KKs_Bez AS KSTBEZ, MONTH(KOSTKBU.KBu_BelDat)
AS Monat, YEAR(KOSTKBU.KBu_BelDat) AS Jahr, KOSTKBU.KBu_BelDat AS BelDat, KOSTKBU.KBu_Text AS BuchTXT,
KOSTKBU.KBu_Euro AS Betrag, KOSTKBU.KBU_Haben as Vorzeichen,
-----------> hier beginnt das Problem
iif(KOSTKBU.KBU_Haben = "-1", (KOSTKBU.KBU_Euro * (-1)) , KOSTKBU.KBU_Euro) AS TEST
-----------> und hier endet es.

FROM KOSTKBU INNER JOIN
KOSTKKS ON KOSTKBU.KKs_IdSoll = KOSTKKS.KKs_Id INNER JOIN
KOSTKKA ON KOSTKBU.KKa_IdSoll = KOSTKKA.KKa_Id
WHERE (KOSTKBU.KBu_MitarbV = 586)


Soweit alles gut, aber das Problem ist das iif......
Ich brauche den Wert von KBU_Euro, der je nachdem, welchen Wert KBU_Haben hat, entweder positiv oder negativ ist. KBU_Haben kann 0 oder -1 sein, d.h. wenn KBU_Haben 0 ist, dann soll KBU_Euro (150,00) z.B. -150,00 Euro sein. (*-1)

Ich weiß erstens schon nicht, ob so etwas innerhalb eines SELECT erlaubt ist und zweitens meckert der Analyzer die Syntax an:
Falsche Syntax in der Nähe von '='.
Habe schon ohne Anführungszeichen versucht, alles mögliche in Klammern usw. Komme einfach nicht drauf.

Daraus soll später ein DTS-Paket werden, dass die Werte automatisch in eine TXT-Datei konvertiert. Das funktioniert allerdings schon, jedoch ohne den iif-Teil.

Hat hier jemand eine Idee bzw. Hilfe? Danke im Voraus!

Andreas
Mitglied: AndreasHoster
05.02.2007 um 17:29 Uhr
IIF gibt es auf dem SQL Server nicht, in Access ja, aber nicht auf dem SQL Server (zumindestens bei SQL 2000).
Aber für die Aufgabe braucht man auch kein IIF.
Da sollte ein einfaches
(KOSTKBU.KBU_Haben + 0,5)*2*KOSTKBU.KBU_Euro as Test
ausreichen.
Bitte warten ..
Mitglied: Biber
05.02.2007 um 17:48 Uhr
*lach*
@AndreasHoster

Deine Variante ist aber gefährlich genial... die musst Du ja schon als Autor dreimal lesen, um sie zu verstehen.
Und da die Hinterlegbarkeit von Kommentarzeilen in SQL-Statements auch unter 64-Bit-Systemen immer noch ein wenig zu wünschen übrig lässt, hat in drei Wochen niemand mehr den Mut, an diesem Statement etwas zu ändern ("...da fass ich nichts an.. ich weiss nicht so genau, was da passiert...") .... trotzdem ein klares *ThumpsUp* von mir ...

@andreasfischer
Wenn Du etwas weniger prickelnd implementieren willst:
Das Äquivalent zu der merkwürdigen IIF(..)-Anweisung im noch merkwürdigeren Access ist:
01.
....
02.
Case 
03.
   When <bedingung> Then 'bla'
04.
   Else 'blubb'
05.
End
06.
...
07.
--oder in einem Fall:
08.
....
09.
 feldx,
10.
(
11.
 Case
12.
   When KOSTKBU.KBU_Haben = -1 then KOSTKBU.KBU_Euro * (-1) 
13.
   Else KOSTKBU.KBU_Euro
14.
End
15.
) As test,
16.
 feldy,
17.
.....
P.S. Die Klammern rund um das "Case...End" sind eher dekorativ/zur Lesbarkeit....aber nicht nötig.
Und das Feld KOSTKBU.KBU_Haben habe ich wie auch Andreas als Numerisch unterstellt, nicht als CHAR.
P.P.S. Wo habt ihr denn die Tabellen- und Feldnamen gekauft? Bei einer Tiroler Jodelschule?

Gruss
Biber
Bitte warten ..
Ähnliche Inhalte
Datenbanken

Microsoft SQL Server Feld mit Trigger aktualisieren

Frage von ursus57Datenbanken3 Kommentare

Ich habe folgendes Problem: Systemumgebung: Micrsosoft SQL Server 2008 Express mit Management Studio Express, ERP Lösung mit SQL Datenbank ...

Datenbanken

MS SQL - Update Text Feld mit Steuerzeichen

Frage von emeriksDatenbanken4 Kommentare

Hi, MS SQL Server 2008 und/oder 2012 nvarchar(n) - Spalte Ich habe Text-Daten, welche auch Steuerzeichen enthalten können. Chr(0) ...

Datenbanken

MS SQL: Zwei numeric-Felder in neuem Feld verbinden

gelöst Frage von BluejetDatenbanken9 Kommentare

Hallo zusammen, ich melde mich einmal mit einer wahrscheinlich sehr einfachen Sache, bei der ich jedoch gerade etwas hänge ...

Windows Netzwerk

Tracert Ergebnis unverständlich

Frage von SauseMausWindows Netzwerk3 Kommentare

Moin allemann, Habe ein Verständnisproblem: hier einen Screenshot vom Kumpel, der einen Tracert auf seine eigene IP Adresse gemacht ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 1 TagWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 3 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 4 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 6 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Notebook & Zubehör
Hardware defekt ?
Frage von mausemuckelNotebook & Zubehör13 Kommentare

Hallo und ein schönes Osterfest an alle. Ich benötige mal euer Schwarm wissen. Ich habe hier ein Notebook Lenovo ...

LAN, WAN, Wireless
Lancom und VLANs
Frage von TimmheLAN, WAN, Wireless11 Kommentare

Hallo an alle ich habe momentan ein sehr merkwürdiges problem bei dem ich nicht mehr weiter komme und hoffe ...

Virtualisierung
Unix System virtualisieren
Frage von BananenmeisterVirtualisierung10 Kommentare

Hallo Zusammen, Ich möchte gerne eine Virtualisierungs-Software auf meinem kleinen ML Server installieren um einige Unix Systeme zu virtualisieren. ...

Peripheriegeräte
Empfehlung für Home-USV (ca. 450VA 270W) Irgendwelche Osterpreisaktionen bekannt?
Frage von Server-NutzerPeripheriegeräte9 Kommentare

Hallo und schöne Ostern. Meine private Heim-USV Yunto Q450 (ca. 450VA 270W) hat sich nach vielen Jahren ohne Probleme ...