ich habe es zur Aufgabe eine - für mich sehr komplizierte - Abfrage zu formulieren und tue mich dabei echt schwer.
Ich hänge jetzt schon mehrere Tage an diesem Problem und komme einfach nicht weiter.
Könnt ihr mir bitte weiterhelfen?
t_piece.key (double + ist Verbindung zu t_value.key)
t_piece.data4 (text)
t_value.time (timestamp)
t_value.key (double + ist Verbindung zu t_piece.key)
t_value.characteristicid (integer references t_characteristic(id)
t_value.value (double)
t_characteristic.id (integer + ist Verbindung zut_value.characteristicid)
t_characteristic.name (text)
Die Anfrage soll folgednes Ausgeben:
In den Spaltenköpfen sollen die verschiedenen Werte von t_piece.data4 stehen (je nachdem, wieviele verschiedene Werte es gibt).
In den Zeilen sollen 6 bestimmte Werte von t_characteristic.name die in der DB existieren aufgelistet werden.
In den Datenfeldern soll gezählt werden wie oft in t_value.value ein Wert steht, der UNGLEICH 1 ist.
Ich habe es bisher so versucht, bin aber auf dem Weg nicht weitergekommen:
(t_value.time muss auf jeden Fall mit in der WHERE-Klausel stehen)
select t_characteristic.name as "Name", count(value) as "PP"
from t_value
join t_piece on t_value.key=t_piece.key
left join t_characteristic on t_characteristic.id = t_value.characteristicid
where
t_characteristic.name in ('Name1','Name2','Name3','Name4','Name5','Name6')
and t_piece.data4 = 'PP'
and t_value.time >= '2012-03-01 00:00:00'
and t_value.time <= '2013-03-22 00:00:00'
and t_value.value <> 1
group by t_characteristic.name
order by t_characteristic.name
Das ist dabei rausgekommen:
Das sehr schlechte daran:
wenn in t_value.value noch keine Werte zu dem t_characteristic.name existieren (im Beispiel ‘Name6’), wird es gar nicht mit angezeigt.
Es wäre notwendig dass dann eine 0 bei ‘Name6’ steht.