# Anfänger SQL-Abfrage (wenn dann)



## fritz74 (3. Oktober 2005)

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


----------



## hpvw (3. Oktober 2005)

IF kann in der Projektion verwendet werden, um einem Aliasfeld einen Wert zu zuweisen:
	
	
	



```
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


----------



## fritz74 (3. Oktober 2005)

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


----------



## hpvw (3. Oktober 2005)

Liefert Access keine Fehlermeldungen?


----------



## Luzie (3. Oktober 2005)

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.


----------



## WieGehts (3. Oktober 2005)

Hallo,
habe mal zum Thema null einen Blick in die Hilfe von Access riskiert und dabei folgendes zusammengestöpselt:
	
	
	



```
SELECT Tabelle1.va, Count(Tabelle1.va) AS Anzahl, Sum(Nz([bis],[and])-[von]) AS Tage
  FROM Tabelle1
  GROUP BY Tabelle1.va;
```
funktioniert prima.


----------

