# Berechnungen unter MS QUERY



## Craig Marduk (23. August 2005)

Guten Morgen,

ich bin ein relativer Frischling beim Thema SQL.

Aber ich habe eine Frage:

Ich habe unter Excel eine Abfrage über MS Query eingebaut.
Diese liefert mir nach dem Select From Where...-Prinzip ein paar Spalten voller Daten.
Jetzt möchte ich eine Berechnunge einfügen. In einer neuen Spalte soll jeweils in Abhängigkeit von einem bestimmten Wert ein Wert ausgegeben werden. Ich hab's nach dem Prinzip (IF ... then ... else...) AS SPALTENNAME versucht. Dann bekomme ich aber immer wieder die Fehlermeldung, dass die Tabelle nicht angezeigt werden kann...

Weiß einer Rat, wie ich solche Berechnungen einfügen kann?


----------



## Nico Graichen (23. August 2005)

Hi und willkommen im Forum

Ich weiß nicht, wie es bei bei MS Query ist, aber beim SQL Server (also TSQL) gibt es die CASE-Anweisung, die genau das macht, was du willst.
Es würde mich doch wundern, wenn die Mircosofties zwei verschiedene Wege nutzen würden (obwohl eigentlich auch nicht  )
alles weitere zur CASE-Anweisung findest du hier


----------



## Craig Marduk (23. August 2005)

Kann ich die Case-Anweisung auch im Select-Block meiner Abfrage verwenden?


----------



## andi_g69 (23. August 2005)

Jep. Das sieht in T-SQL so aus:

SELECT 
CASE DeinFeld 
WHEN 0 THEN 'Ist 0'
ELSE 'Ist nicht 0'
END AS CaseBeispiel
FROM DeinerTabelle


----------



## Craig Marduk (24. August 2005)

Ich möchte folgenden Aufbau:
Wenn Feld1 gleich x oder y dann soll der Inhalt leer bleiben ansonsten soll (x+y)/2 als Feldinhalt unter dem Spaltennamen Kriterium ausgeben.
Dazu die die Abfrage:

SELECT
andere Felder, 
(CASE Feld1
WHEN (x OR y) THEN ' '
ELSE ((x + y)/2)
END) AS KRITERIUM
FROM
Quelltabelle
WHERE
...
ORDER BY
...

Wenn ich diesen Select-Part raus lasse, dann funktioniert die Abfrage. Wenn ich aber den Part einfüge, gibt der mir zwei Fehlermeldungen aus:
1. Die SQL-Abfrage kann nicht grafisch dargestellt werden...
2. Die Tabelle Quelltabelle kann nicht hinzugefügt werden...

Was mache ich falsch?


----------

