MySQL Forums
Forum List  »  German

Matrix-Abfrage
Posted by: Chaos World
Date: July 27, 2007 05:09PM

Habe eine etwas komplexere Abfrage, für dich ich einfach keine Lösung finde.

vereinfacht sieht die wichtige Tabelle (Probenergebnisse) so aus:
Probennr: integer;
Parameter: varchar;
Ergebnis: varchar;

Das sieht dann so aus:
Probennr  - Parameter      - Ergebnis
1         - ph-Wert        - 5,02
1         - Wassergehalt   - 52
1         - Kochsalzgehalt - 2,9
2         - ph-Wert        - 9,15
2         - Kochsalzgehalt - 10
3         - ph-Wert        - 7,03
3         - Wassergehalt   - 35
3         - Kochsalzgehalt - 5

Jetzt möchte ich daraus eine Matrix machen. D.h. ich habe eine selektion der Proben, so dass hier die Probennummern 1 bis 3 abgefragt werden. Die Anzahl der Parameter sind absolut variabel. Probelem ist ausserdem, dass die Parameter in vielen Punkten die selben sind, aber nicht bei allen!

Nun benötige ich eine Abfrage die folgendes leistet:
Probennr   - ph-Wert   - Wassergehalt - Kochsalzgehalt 
1          -  5,02     -  52          -  2,9
2          -  9,15     -  ----        - 10
3          -  7,03     -  35          - 5

Problem ist, dass dies nur eine vereinfachte Version ist, z.t. können bei so einer Abfrage auch mal 100 Proben abgefragt werden oder anderenfalls auch mal insg. 30 Parameter. Die einzige Möglichkeit die ich habe wäre nach der Art:
Select p.Probennr,
(IFNULL(Select Ergebnis from Probenergebnisse PE where PE.Probennr=p.Probennr and Parameter='ph-Wert'),'---') ph-Wert,
(IFNULL(Select Ergebnis from Probenergebnisse PE where PE.Probennr=p.Probennr and Parameter='Wassergehalt'),'---') Wassergehalt,
(IFNULL(Select Ergebnis from Probenergebnisse PE where PE.Probennr=p.Probennr and Parameter='Kochsalzgehalt'),'---') Kochsalzgehalt
from Proben
where Probennr <= 3;

Das klappt ja auch, nur muss ich dann bei jeder Anfrage die Abfrage sehr umständlich "zusammenbauen" und sie wird auch SEHR lang, wenn es recht viele Parameter sind.

Ich hoffe jemand hat eine Idee, wie ich diese Abfrage etwas komfortabler erstellen kann. Danke auf jedenfall für jede Antwort

Chaosworld

Options: ReplyQuote


Subject
Views
Written By
Posted
Matrix-Abfrage
6073
July 27, 2007 05:09PM
3552
July 30, 2007 11:04AM
3236
September 03, 2007 07:18AM
2491
March 10, 2009 11:52PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.