Anfänger SQL-Abfrage (wenn dann)

fritz74

Grünschnabel
Hallo ,

ich hab folgende Abfrage kreiert:

SELECT dbea.versicherungsart, Count(dbea.versicherungsart) AS Anzahl, Sum(([leibis]-[leivon])) AS Tage
FROM dbea
WHERE (((dbea.vorgangsart)="Versicherungszeiten"))
GROUP BY dbea.versicherungsart;


Jetzt kommt es bei einigen Datensätzen vor, daß das Feld leibis NULL ist. In diesen Fällen soll er die differenztage zwischen dem Feld aenderungszeit und leisvon bilden...

Geht das , wenn ja wie :rolleyes:
 
IF kann in der Projektion verwendet werden, um einem Aliasfeld einen Wert zu zuweisen:
Code:
SELECT
  IF( Bedingung , 
      Wert oder Berechnung oder Feld, wenn Bedingung zutrifft, 
      Wert oder Berechnung oder Feld, wenn Bedingung nicht zutrifft)
    AS Aliasfeldname
FROM Tabelle
Gruß hpvw
 
Danke erst mal.

Ich so umgesetzt:
SELECT
if (leibis is null, sum(leibis-leivon),leibis is not null), sum (aenderungszeit-leivon) as Tage, dbea.versichersart, dbea.vorgangsart


FROM dbea
WHERE (((dbea.vorgangsart)="Versicherungszeiten"))
GROUP BY dbea.versicherungsart;


es funktionert aber nicht...

Könntest du mir nochmals helfen.

Übrigens ich arbeite mit Access-Tabellen in Access
 
Hi

Access kennt if() meines eigentlich nicht.
Abfragen kann man mit iif() oder nz() regeln.
Letzteres geht meines Wissens nicht über den odbc-Treiber.

bsp.

select iif(feld is null,'Wert',feld) as feld from tabelle

das 1. Attribut gen. die Abfrage, das 2. den Wert, der dann entstehen soll, das 3. die else-Verzweigung.
 
Zuletzt bearbeitet:
Hallo,
habe mal zum Thema null einen Blick in die Hilfe von Access riskiert und dabei folgendes zusammengestöpselt:
Code:
SELECT Tabelle1.va, Count(Tabelle1.va) AS Anzahl, Sum(Nz([bis],[and])-[von]) AS Tage
  FROM Tabelle1
  GROUP BY Tabelle1.va;
funktioniert prima.
 
Zurück