Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Wenn-Dann-Sonst in SQL??? mit SQL-String :-)
zurück: Geht das überhaupt weiter: Zähl-/Vergleichsfunktion für Tabelle? Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
SCHNEEMANN
Gast


Verfasst am:
18. Okt 2004, 15:33
Rufname:

Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

hi, ich hab da mal ne frage.
ich möchte in sql eine "wenn dann sonst-formel" schreiben, geht das? und wenn wie?
ich möchte folgenes darstellen!
=summe(wenn(beitragsfrei="nein" & gekündigt="nein" & monatlicher beitrag="ja" dann Versicherungssumme *12 sonst wenn(ect. ich habe es zwar versucht aber leider klappt es nicht!!!

ich möchte gerne ein summiertes ergebnis angezeigt bekommen, dass ich dann über "domwert" in einem formular angezeigt haben möchte!
vielen dank schon mal in voraus:-))
gruß SCHNEEMANN
Code:
SELECT Sum(Tabelle_Direktversicherung.Versicherungsbeitrag) AS DV_Summe
FROM Tabelle_Direktversicherung
WHERE (((([Tabelle_Direktversicherung].[Beitragsfrei]))="nein") AND ((Tabelle_Direktversicherung.Gekündigt)="Nein"))
HAVING (((Sum(Tabelle_Direktversicherung.Versicherungsbeitrag))=IIf([Tabelle_Direktversicherung]![Beitragsfrei]=No And [Tabelle_Direktversicherung]![Gekündigt]=No And [Tabelle_Direktversicherung]![Monatliche Zahlung]=Yes,[Tabelle_Direktversicherung]![Versicherungsbeitrag]*12,IIf([Tabelle_Direktversicherung]![Beitragsfrei]=No And [Tabelle_Direktversicherung]![Gekündigt]=No And [Tabelle_Direktversicherung]![Halbjährliche Zahlung]=Yes,[Tabelle_Direktversicherung]![Versicherungsbeitrag]*2,0))));
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
18. Okt 2004, 16:07
Rufname:
Wohnort: Wiesbaden


AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

Hallo Schneemann (ist das nicht noch ein bisschen warm draußen für dich Very Happy ),
ohne jetzt auf deine speziellen Fragen einzugehen: eine Wenn-Dann-"Formel" in SQL geht über die Wenn- oder IIf-Funktion. Die Syntax ist allerdings etwas kryptisch, wenn man mehrere Unterscheidungen machen will, aber grundsätzlich funzt das auch. Am besten schaust du mal in der Hilfe nach.
Gruß
Skogafoss
Willi Wipp
Moderator


Verfasst am:
18. Okt 2004, 16:49
Rufname:
Wohnort: Raum Wiesbaden

Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-) - Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-)

Nach oben
       

Hi SCHNEEMANN,

wie Skogafoss schon geschreiben hat, sollte es prinzipiell gehen.
Ich wuerde Dir aber zu der Erstellung einer eigenen globalen Funktion raten.
Hier ist es wesentlich einfacher den Ueberblick zu behalten.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
SCHNEEMANN
Gast


Verfasst am:
19. Okt 2004, 13:20
Rufname:

AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

hi, ich habe es ausprobiert und es funktioniert leider immer noch net!!
ich habe folgenden string gemacht:
Code:
SELECT Sum(Tabelle_Direktversicherung.Versicherungsbeitrag) AS DV_Summe
FROM Tabelle_Direktversicherung
HAVING (((Sum(Tabelle_Direktversicherung.Versicherungsbeitrag))=IIf([Tabelle_Direktversicherung]![Beitragsfrei]="Nein" And [Tabelle_Direktversicherung]![Gekündigt]="Nein" And [Tabelle_Direktversicherung]![Monatliche Zahlung]="Ja",[Tabelle_Direktversicherung]![Versicherungsbeitrag]*12,IIf([Tabelle_Direktversicherung]![Beitragsfrei]="Nein" And [Tabelle_Direktversicherung]![Gekündigt]="Nein" And [Tabelle_Direktversicherung]![Halbjährliche Zahlung]="Ja",[Tabelle_Direktversicherung]![Versicherungsbeitrag]*2,0))));

beim aktivieren zeigt er mir zwar die überschrift an aber keine zelle wo das ergebnis erscheinen kann, er zeigt nur die überschrift DV_Summe an!
woran kann das liegen hat jemand einen tipp???
wäre dankbar für eine antwort:-)
gruß SCHNEEMANN
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
19. Okt 2004, 13:59
Rufname:
Wohnort: Wiesbaden


AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

Hallo Schneemann,
probier mal Folgendes:
Code:
SELECT IIf([Beitragsfrei]=No And [Gekündigt]=No And [Monatliche Zahlung]=Yes,
           [Versicherungsbeitrag]*12,
           IIf([Beitragsfrei]=No And [Gekündigt]=No And [Halbjährliche Zahlung]=Yes,
           [Versicherungsbeitrag]*2),0) AS DV_Summe
FROM   Tabelle_Direktversicherung;

Du hast dir aus meiner Sicht etwas zuviel Arbeit gemacht Very Happy und außerdem darf der Vergleich der Boolschen Ausdrücke nicht auf ="Nein" bzw. ="Ja" lauten. Die Anführungszeichen sind überflüssig.
Wenn ich deinen Code richtig interpretiere, dann willst du ja nur in Abhängigkeit der Ja/Nein-Parameter einen Wert bestimmen. Du definierst also ein entsprechendes Feld und setzt dieses Feld gleich dem über das IIf zu berechnenden Wert.
Inhaltliche Frage: Was passiert in den anderen Fällen? Die Abfrage liefert dir dann, wenn keine der beiden Bedingungen erfüllt ist den Wert NULL. Ist das inhaltlich richtig???
Gruß
Skogafoss
SCHNEEMANN
Gast


Verfasst am:
19. Okt 2004, 16:32
Rufname:

AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

funktioniert leider auch net!!Sad( (zeigt keine Ergebnisse an alles leere felder!!)
hier noch mal mein problem:
ich möchte das das system bei allen aktiven (beitragsfrei=nein und gekündigt=nein) direktversicherungen aus dem Feld Versicherungsbeitrag (der entweder den monatlichen, den halbjährlichen oder jährlichen Versicherungsbeitrag enthält) den effektiven jahresbeitrag (versicherungsbeitrag *12 oder *2 oder *1) ermittelt und in einer summe ausgibt!!
hast du noch eine idee???
wäre toll Wink gruß SCHNEEMANN
Willi Wipp
Moderator


Verfasst am:
19. Okt 2004, 16:36
Rufname:
Wohnort: Raum Wiesbaden

Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-) (II) - Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-) (II)

Nach oben
       

Hi SCHNEEMANN,

dann vielleicht so?
Code:
SELECT Sum(IIf([Monatliche Zahlung]=True,[Versicherungsbeitrag]*12,
           IIf([Halbjährliche Zahlung]=True,[Versicherungsbeitrag]*2),0) AS DV_Summe
FROM   Tabelle_Direktversicherung
WHERE  [Beitragsfrei]=False
AND    [Gekündigt]=False;

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
19. Okt 2004, 17:11
Rufname:
Wohnort: Wiesbaden

AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

Hallo ihr beiden,
sorry, aber ich verstehe immer noch nicht, wieso ihr irgendwo eine Summe benötigt. Es geht doch nur darum, den Wert in Abhängigkeit von verschiedenen Parametern (gekündigt, beitragsfrei, halbjährliche oder monatliche Zahlung) zu berechnen. Wozu um alles in der Welt benötige ich da in dem SQL-Code eine Summenfunktion?
Das ändert aber nichts daran, dass ich hier falschen SQL-Code produziert habe, sorry Embarassed . Und außerdem ist natürlich der Ansatz von Willi, die doppelte Verwendung von gekündigt / beitragsfrei zu vermeiden, der bessere.
Also neuer Versuch:
Code:
SELECT IIf([Monatliche Zahlung]=Yes,[Versicherungsbeitrag]*12,
           IIf([Halbjährliche Zahlung]=Yes,[Versicherungsbeitrag]*2)) AS DV_Summe
FROM   Tabelle_Direktversicherung
WHERE  Beitragsfrei=No
AND    Gekündigt=No;

Also jetzt ist das Ding bei mir getestet und es funzt hier auch.
Gruß
Skogafoss
P.S. Außerdem würde ich sowas (man sieht ja, wie fehleranfällig diese IIf-Syntax ist, ähm, wie fehleranfällig diesbezüglich Menschen sind, meine ich natürlich Wink) mit einer kleinen Funktion machen, die dann doch mehr Übersicht bringt.
Willi Wipp
Moderator


Verfasst am:
19. Okt 2004, 17:20
Rufname:
Wohnort: Raum Wiesbaden

Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-) (III) - Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-) (III)

Nach oben
       

Hi Skogafoss,

ich gebe Dir mit Deinem Nachsatz (PS) natuerlich recht (siehe Re: Wenn-Dann-Sonst in SQL? mit SQL-String Smile)
Ich habe die Summe nur wieder eingefuehrt, da ich dachte er moechte die Gesamtsumme der Versicherungsbeitraege haben.
Zitat:
und in einer summe ausgibt!!

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
19. Okt 2004, 17:38
Rufname:
Wohnort: Wiesbaden

AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

Hallo Willi,
ja ok, vielleicht will Schneemann ja wirklich dann über alle summieren, die jährlich, halbjährlich oder monatlich zahlen, aber zuerst muss ja mal der Betrag für den einzelnen stimmen.
@Willi Und deine SQL funzt so nicht Wink .
Anderer Ansatz mit einer Funktion auf die Schnelle:
Code:
Function DV_Sum(Beitrag As Currency, beitragsfrei As Boolean, _
                gekündigt As Boolean, mtl As Boolean, hj As Boolean, _
                j As Boolean) As Currency
    Dim curB As Currency
   
    curB = 0
    If (Not beitragsfrei) And (Not gekündigt) Then
        If mtl Then
            curB = 12 * Beitrag
          Else
            If hj Then
                curB = 2 * Beitrag
              Else
                If j Then
                    curB = Beitrag
                End If
            End If
        End If
    End If
    DV_Sum = curB
End Function

Dann der SQL-Code:
Code:
SELECT *,
       DV_Sum([Versicherungsbeitrag],[beitragsfrei],[gekündigt],
              [monatliche Zahlung],[halbjährliche Zahlung],
              [jährliche Zahlung]) AS DVSumme
FROM   Tabelle_Direktversicherung;

Der gibt pro Datensatz (Kunde?) den Jahresbeitrag aus.
Wenn man nun noch z.B. über alle Kunden die Summe haben will:
Code:
SELECT Sum(DV_Sum([Versicherungsbeitrag],[beitragsfrei],[gekündigt],
                  [monatliche Zahlung],[halbjährliche Zahlung],
                  [jährliche Zahlung])) AS DVSumme
FROM   Tabelle_Direktversicherung;

Wenn man das nur für bestimmte Kunden (z.B. alle die halbjährlich zahlen) haben will:
Code:
SELECT Sum(DV_Sum([Versicherungsbeitrag],[beitragsfrei],[gekündigt],
                  [monatliche Zahlung],[halbjährliche Zahlung],
                  [jährliche Zahlung])) AS DVSumme
FROM   Tabelle_Direktversicherung
WHERE  [Halbjährliche Zahlung]=Yes;

Ich hoffe, dass dieses Mal alles richtig ist Very Happy
Gruß
Skogafoss
Willi Wipp
Moderator


Verfasst am:
19. Okt 2004, 17:54
Rufname:
Wohnort: Raum Wiesbaden

Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-) (IV) - Re: Wenn-Dann-Sonst in SQL? mit SQL-String :-) (IV)

Nach oben
       

Hi Skogafoss,

OK, Ok, das kommt davon wenn man es nur im Kopf macht! Embarassed
Habe doch glatt die Gruppierung (GROUP BY) vergessen und WHERE statt HAVING verwendet.
Und dann war da auch noch eine falsche Klammer.
Code:
SELECT   Sum(IIf([Monatliche Zahlung]=True,[Versicherungsbeitrag]*12,
                 IIf([Halbjährliche Zahlung]=True,[Versicherungsbeitrag]*2,0))) AS DV_Summe
FROM     Tabelle_Direktversicherung
GROUP BY Beitragsfrei, Gekündigt
HAVING   Beitragsfrei=False
AND      Gekündigt=False;

Aber wie gesagt, Deine Loesung ist hier natuerlich besser, wesentlich uebersichtlicher und flexibler.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
SCHNEEMANN
Gast


Verfasst am:
20. Okt 2004, 16:33
Rufname:


AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) - AW: Wenn-Dann-Sonst in SQL??? mit SQL-String :-)

Nach oben
       

SCHNEEMANN am 20. Okt 2004 um 06:32 hat folgendes geschrieben:
hi ihr beiden,
toll das ihr euch so viel mühe macht mir zu helfen Razz
ich werde es gleich mal ausprobieren und euch berichten!!!
vielen vielen dank!!!
gruß SCHNEEMANN
hi, ich wollte bloß schreiben, dass es funktioniert!!
ich habe die formel von Skogafoss ein bisschen angepasst und dann ist mir die gewünschte summe ausgeworfen wurden! huhuuu
Code:
SELECT   Sum(IIf([Monatliche Zahlung]="Ja",[Versicherungsbeitrag]*12,
                 IIf([Halbjährliche Zahlung]="Ja",[Versicherungsbeitrag]*2,
                     IIf([Jährliche Zahlung]="Ja",[Versicherungsbeitrag],0)))) AS DV_Summe
FROM     Tabelle_Direktversicherung
GROUP BY Beitragsfrei, Gekündigt
HAVING   Beitragsfrei="Nein"
AND      Gekündigt="Nein";

vielen dank noch mal
gruß SCHNEEMANN
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: SQL : Datenbank löschen 1 cfl2si 7441 23. März 2005, 12:30
Willi Wipp SQL : Datenbank löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Access ändert meine SQL Strings 1 Nil 609 24. Feb 2005, 13:25
lothi Access ändert meine SQL Strings
Keine neuen Beiträge Access Tabellen & Abfragen: Zwei Datenfelder dividieren? (SQL) 8 marcos 7020 04. Feb 2005, 12:13
marcos Zwei Datenfelder dividieren? (SQL)
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Gruppierung -AXP 2 nepokat 602 03. Feb 2005, 08:46
nepokat SQL Gruppierung -AXP
Keine neuen Beiträge Access Tabellen & Abfragen: SQL: Like Operator geht nicht 2 Klaus-Peter_ 11243 31. Jan 2005, 18:54
Klaus-Peter SQL: Like Operator geht nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle per SQL umbennen (Access 2000) 2 DerPater 1085 09. Dez 2004, 14:02
Gast Tabelle per SQL umbennen (Access 2000)
Keine neuen Beiträge Access Tabellen & Abfragen: Dezimaltrennzeichen in SQL-String 6 WinklerM 4452 06. Dez 2004, 11:19
Willi Wipp Dezimaltrennzeichen in SQL-String
Keine neuen Beiträge Access Tabellen & Abfragen: Kombinationsfeld Datensatzherkunft VBA SQL 2 JensM 8921 17. Nov 2004, 19:57
JensM Kombinationsfeld Datensatzherkunft VBA SQL
Keine neuen Beiträge Access Tabellen & Abfragen: zeilenumbruch in sql abfrage 6 uweberli 18231 10. Nov 2004, 16:42
uweberli zeilenumbruch in sql abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Per SQL maximalen Spaltenwert im VBA code ermitteln 2 Gast 4780 31. Okt 2004, 23:10
Tom2002 Per SQL maximalen Spaltenwert im VBA code ermitteln
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Wenn-Dann-Sonst in SQL??? 2 SCHNEEMANN 998 18. Okt 2004, 17:26
Willi Wipp Wenn-Dann-Sonst in SQL???
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Abfrage ob ein Wert in der Tabelle enthalten ist 1 notausgang 1301 23. Sep 2004, 09:42
stpimi SQL - Abfrage ob ein Wert in der Tabelle enthalten ist
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Word VBA