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, 7668 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
SQL-Abfrage und leere Felder vermeiden
gelöst Frage von zwangseinweisungDatenbanken12 Kommentare

Hallo, ich mache grade eine Ausbildung zum Fi-Si und vor dem Weihnachtsurlaub haben wir im Fach Datenbanken noch eine ...

Microsoft Office

Aus SQL Abfrage Ergebnis in Variable per loop schreiben

gelöst Frage von karlchristianMicrosoft Office4 Kommentare

Hallo, ich habe eine Temp_Abfrage, welche ich per Schleife nach und nach in eine Variable schreiben möchte begonnen habe ...

Datenbanken

MS SQL: In einer Abfrage in Abhängigkeit von XYZ summieren SUM() - Als Query aus VBA heraus

gelöst Frage von AximandDatenbanken10 Kommentare

Hallo, ich brech mir gerade einen ab und hoffe, dass ihr mir helfen könnt. Ich habe eine Tabelle KHKLagerplatzbestaende. ...

Datenbanken

SELECT DISTINCT nur für eines der Felder in der Abfrage?

gelöst Frage von AdminKnechtDatenbanken5 Kommentare

Hallo, da ich nicht der DB-Guru bin und eine Abfrage erstellen muss hänge ich hier: Das Dataset sieht momentan ...

Neue Wissensbeiträge
Windows Server

SBS 2011: Installation von KB4457144 schlägt beim Reboot fehl - Von Dienst gesperrte Schriftart ursächlich

Tipp von the-buccaneer vor 55 MinutenWindows Server

Moinsen zusammen! Das hat mich einige graue Haare gekostet: Ein SBS 2011 weigerte sich schon im August, das monatl. ...

Windows Netzwerk
Browser-Lags und IPv6
Erfahrungsbericht von NixVerstehen vor 6 StundenWindows Netzwerk1 Kommentar

Hallo zusammen, wir betreiben als kleines Speditionsunternehmen ein überschaubares Windows-Netzwerk mit Win10-Clients sowie einem Server 2016 Essentials als "eierlegende ...

Humor (lol)

Erstaunlich, Windows mit extremer Laufzeit (Server) lol

Tipp von mathu vor 9 StundenHumor (lol)5 Kommentare

Was es so alles gibt. :-)

Windows Netzwerk

CGM Praxisarchiv funktioniert auf Clients nach Update auf 4.14 nicht mehr

Tipp von MOS6581 vor 1 TagWindows Netzwerk

Moin, ein Kunde setzt das CGM-Praxisarchiv ein. Mehrplatzinstallation mit SQL-Server. Nachdem letzte Woche auf die 4.14 aktualisiert wurde, funktionierte ...

Heiß diskutierte Inhalte
Hyper-V
Windows Serer 2016 Standard virtualisieren
gelöst Frage von fritte87Hyper-V33 Kommentare

Hallo zusammen, ich muss für eine kleine Firma ein entsprechendes neues kleines Konzept bauen. Ich habe einen Server Standard ...

LAN, WAN, Wireless
Kombiniere mehrere 4G Router zu einem Netzwerk - Anwendung kleine LAN (10-20 Leute)
Frage von HulkTheHeroLAN, WAN, Wireless24 Kommentare

Guten Mittag liebes Administrator - Fourm, ich hoffe ich habe das richtige Thema ausgewählt - ansonsten bitte gerne verschieben ...

Windows Server
Fileserver von 2012 R2 auf 2012R2
gelöst Frage von ThabeusWindows Server23 Kommentare

Moin moin, leider war in der Vergangenheit der Fokus des Betriebs nicht auf Langfristigkeit ausgelegt. Daher stehe ich jetzt ...

Router & Routing
Größere Zahl VPN-Verbindungen mit Fritz-Box einrichten
Frage von miscmikeRouter & Routing15 Kommentare

Hallo Zusammen, ich supporte verschiedene Kunden mit bestehenden LAN-LAN-Kopplungen via FritzBox (7490, FritzOS 7.01) . Anwendungen sind z.B. Kaspersky-KSC ...