Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
SELECT mit IF-Bedingung
Gehe zu Seite 1, 2  Weiter
zurück: Spalten vereinigen per Abfrage in access weiter: zwei Tabellen verknüpfen in Access Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Okt 2012, 20:07
Rufname:

SELECT mit IF-Bedingung - SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,

ich hab zwar im Netz ein paar Beispiele gefunden, jedoch hapert es noch irgendwo. Möchte folgende SQL Befehl erzeugen:
Code:
SELECT Ort,
       IF DatumEnd = "" THEN (DatumStart & " / (" & DatumMid & ")" & ) ELSE (DatumStart & " / " & DatumEnd) END AS TimeLine
FROM   tblBegin
Nur wie muss ich das korrekt in SQL aufbauen? Leider meckert Access momentan, dass der Syntax falsch sei. (Fehlender Operator).

Gru0
KlausMz
Moderator Access


Verfasst am:
22. Okt 2012, 20:11
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,
beschreibe mal in normalen Worten was Du erreichen willst.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Okt 2012, 20:17
Rufname:

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,

ich möchte dass, wenn DatumEND vorhanden ist, der Wert von DatumEND und von DatumStart genommen wird, ist DatumEND nicht verfügbar, so soll als Ausgabe DatumStart und DatumMID genommen werden und in beiden Fällen nur in einer Spalte angezeigt werden.

Gruß
KlausMz
Moderator Access


Verfasst am:
22. Okt 2012, 20:24
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,
ein leeres Feld ist nicht "" sondern Null (=Nix), nicht die Zahl 0.
Das IIF (2 II !!) von SQL kennt kein Then kein Else und kein End. Die Blöcke werden durch , getrennt.
1.Block=Bedingung
2.Block Bedingung = Wahr
3.Block Bedingung = Falsch
Versuche es daher mal so:
Code:
SELECT Ort,
       IIf DatumEnd Is Null, DatumStart & " / (" & DatumMid & ")", DatumStart & " / " & DatumEnd AS TimeLine
FROM   tblBegin

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Nouba
nicht ganz unwissend :)


Verfasst am:
22. Okt 2012, 20:26
Rufname:
Wohnort: Berlin


AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,

versuche es mit ... , DatumStart & " / " & Nz(DatumEnd, "(" & DatumMid & ")") As TimeLine ...

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
KlausMz
Moderator Access


Verfasst am:
22. Okt 2012, 20:27
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,
oder den kürzeren Vorschlag von Nouba Zusätzlich kennst Du jetzt NZ und IIF kennst Du genauer. Laughing Laughing

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Okt 2012, 20:38
Rufname:

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Danke euch beiden!!! Ich war dann nicht mal so weit weg mit meinen Überlegungen nur hatte ich beim IIF es mit ";" versucht zu lösen und nicht mit ","
Die Idee mit Nz( ) ist natürlich tricky ;) v.a. da ich Nz in einer andere Sache bei mir schon verwende. Ich bin nur nicht auf die Idee gekommen, es direkt mit in die SELECT Teil zu schreiben.
Nouba
nicht ganz unwissend :)


Verfasst am:
22. Okt 2012, 20:45
Rufname:
Wohnort: Berlin

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,

die Version mit IIf hat jedoch den Vorteil, dass die Abfrage auch außerhalb von Access (z. Bsp. in Excel durch MsQuery) genutzt werden kann.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Okt 2012, 23:02
Rufname:

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,

nun doch noch eine Frage: Wie kann ich das ganze in VBA SQL mit einbinden? Ich kriege die IIF Version hin, solange zwischen den Werten nur ein & Zeichen ist. Sobald ich & " ... " & zwischen die Werte bringe, dann meckert VBA, dass Klammern fehlen Sad

Gruß
KlausMz
Moderator Access


Verfasst am:
22. Okt 2012, 23:06
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,
meinst Du nicht, dass es helfen könnte (Dir) wenn Du hier zeigst was Du versucht hast?
Hier sind doch keine Hellseher unterwegs. Laughing

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Okt 2012, 23:10
Rufname:

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

ja da geb ich dir natürlich recht. Nur kann ich leider den Code aufgrund der Beschreibung nicht öffentlich machen Sad

Ich muss mal schauen, wie ich es anonymisiert bekomme. Moment.
edit:
Code:
    gSQL_Info = "SELECT DISTINCT I.Info_Relevant_Board, (Info_No & Info_Star) AS Info, " _
                     & "M.Info_No, M.Info_Star, M.c_imp, M.cost_incident, " _
                     & "M.freq_f, I.Info_Model, P1.Location, M.Issue_No, " _
                     & "P1.Project, ([Issue_Description] & [Location_Fehler]) AS Damage, P.Pic_Name, " _
                     & "I.Info_Markets, M.t_cost, I.Info_Vehicle, I.Info_Failure_Rates, " _
                     & "LAST(IIf(M.[DatumEnd] Is Null,M.[DatumStart] & M.[DatumMid], M.[DatumEnd] & M.[DatumMid])) AS TimeLine, " _
                     & "M.Processing_Status, I.Info_C_Issue, " _
                     & "M.IRA_Resp, M.relevant_markets " _
                & "FROM ((tbMain AS M " _
                       & "LEFT JOIN tbInfo AS I " _
                       & "ON M.Issue_No = I.Info_IssueNo) " _
                      & "LEFT JOIN tbPictures AS P" _
                      & "ON M.Issue_No = P.Pic_IssueNo) " _
                     & "INNER JOIN 18_Projects AS P1" _
                     & "ON M.Project_IRA=P1.ZEUS_Project " _
              & "WHERE " & srcq & " " _
            & "GROUP BY I.Info_Relevant_Board, (Info_No & Info_Star), M.Info_No, M.Info_Star, " _
                     & "M.c_imp, M.cost_incident, M.freq_f, I.Info_Model, P1.[Location], M.[Issue_Description] & M.[Location_Fehler], " _
                     & "M.Issue_No, P1.Project, P.Pic_Name, I.Info_Markets, M.t_cost, " _
                     & "I.Info_Vehicle, I.Info_Failure_Rates, " _
                     & "M.Processing_Status, I.Info_C_Issue, M.IRA_Resp, M.relevant_markets " _
            & "ORDER BY M.Info_No DESC , M.Info_Star DESC , M.t_cost DESC;"
Das wäre der Code.
srcq ist noch ein String:
Code:
    srcq = "M.freq_f > 100"
{Aus HAVING-Klausel mach WHERE-Klausel und Alias (AS) gesetzt by Willi Wipp}
KlausMz
Moderator Access


Verfasst am:
22. Okt 2012, 23:39
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,
ich kann so auf die Schnelle keinen Fehler finden.
Was willst Du mit dem LAST bezwecken?
Sind alle Felder gruppiert?

Noch ein Tip:
Wenn Du keine gleichen Feldnamen in den Tabellen hast, kannst Du die Tabellennamen vor den Feldnamen löschen. Außer bei den Beziehungen. Das macht den Code kürzer. Außerdem ist es vorteilhaft die Leerzeichen immer vor ein Schlüsselwort zu machen, dann sieht man sofort wo eines fehlt.
Und schließlich kannst Du Dir den String mal im Direktbereich ausgeben lassen, da lassen sich auch Fehler erkennen.

Code:
Debug.Print gSQL

Nach dem Zusammenbau des Strings und dann noch ein Stop Befehl.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Okt 2012, 23:51
Rufname:

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,

ja das ist ja auch der Punkt, dass so alles funktioniert. Wenn ich jedoch
Code:
LAST(IIf(M.[DatumEnd] Is Null,M.[DatumStart] & M.[DatumMid], M.[DatumEnd] & M.[DatumMid])) AS TimeLine
auf bspw.
Code:
LAST(IIf(M.[DatumEnd] Is Null,M.[DatumStart] & "/" & M.[DatumMid], M.[DatumEnd] & M.[DatumMid])) AS TimeLine
ändere kommt die folgende Fehlermeldung: Laufzeitfehler "13" Typen unverträglich.

Mit dem Last soll nur der neueste / oberste Wert angenommen werden, da sonst ev. mehrere Einträge drin sind. (Eine Nummer kann mehrere Datume habe und davon brauche ich aber nur den mit dem neuesten wenn es absteigend sortiert wird.
KlausMz
Moderator Access


Verfasst am:
22. Okt 2012, 23:56
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Hallo,
versuche es mal so (Hochkomma statt Az.):
Code:
" LAST(IIf([DatumEnd] Is Null,[DatumStart] & '/' & [DatumMid], [DatumEnd] & [DatumMid])) AS TimeLine, "

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Okt 2012, 23:59
Rufname:


AW: SELECT mit IF-Bedingung - AW: SELECT mit IF-Bedingung

Nach oben
       Version: Office 2010

Ja. das wars. Ich werd noch kirre. Nur wieso jetzt mit ' ' statt mit " " ??? Ich dachte ' ' das verwende ich wenn ich einen Wert aus einer Variabel übergebe...

Aber auch nur so lange bis ich nur ' / ' verwende. Es meckert wieder wenn ich ' /(' eintrage. Sad
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
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: SELECT als Double und Prozent 6 NoFriendOfSQL 397 27. Jul 2011, 08:52
NoFriendOfSQL SELECT als Double und Prozent
Keine neuen Beiträge Access Tabellen & Abfragen: Select Abfrage Zeichen ignorieren 6 feuse8 602 03. Jun 2011, 12:44
Willi Wipp Select Abfrage Zeichen ignorieren
Keine neuen Beiträge Access Tabellen & Abfragen: VBA auf SELECT Count(*) 4 strolli 2106 12. Apr 2011, 12:29
strolli VBA auf SELECT Count(*)
Keine neuen Beiträge Access Tabellen & Abfragen: SELECT Sum() mit String 2 Gast 278 21. Dez 2010, 14:50
Gast SELECT Sum() mit String
Keine neuen Beiträge Access Tabellen & Abfragen: Union select nach "Quelle" sortieren 9 avalancha 495 24. März 2010, 22:12
avalancha Union select nach "Quelle" sortieren
Keine neuen Beiträge Access Tabellen & Abfragen: Select all außer Literalzeichen? 1 denzur 796 03. März 2010, 17:50
helado Select all außer Literalzeichen?
Keine neuen Beiträge Access Tabellen & Abfragen: SELECT Top, SELECT Max() oder was dazwischen 20 Tina81 2404 18. Dez 2009, 23:40
Tina81 SELECT Top, SELECT Max() oder was dazwischen
Keine neuen Beiträge Access Tabellen & Abfragen: SELECT COUNT mit WHERE Argument 2 holger83 3142 06. Jan 2009, 18:23
holger83 SELECT COUNT mit WHERE Argument
Keine neuen Beiträge Access Tabellen & Abfragen: zwei select count abfragen mit union all untereinander 1 llcoolt23 2518 25. Jul 2008, 15:17
MAPWARE zwei select count abfragen mit union all untereinander
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage: INSERT INTO mit festem Wert und SELECT 1 DrPepper 2327 27. März 2008, 15:59
Willi Wipp Abfrage: INSERT INTO mit festem Wert und SELECT
Keine neuen Beiträge Access Tabellen & Abfragen: MEMOFELD erzeugen in Tabellenerstellungsabfrage SELECT INTO 1 aeschen 1807 18. Aug 2007, 17:44
steffen0815 MEMOFELD erzeugen in Tabellenerstellungsabfrage SELECT INTO
Keine neuen Beiträge Access Tabellen & Abfragen: SELECT mit Variablen aus VBA geht das? 12 Tomate007 5469 12. Dez 2006, 09:33
Tomate007 SELECT mit Variablen aus VBA geht das?
 

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