Hallo und guten Abend,
mühe mich vergeblich ein SELECT mit WHERE hinzubekommen. Kann jemand helfen?
Wir haben eine Tabelle, die ein Feld C7105 (erste Spalte) enthält. Darin stehen die Medikamenten-Einnahmen für morgens, mittags, abends und nachts, getrennt durch Bindestriche. Muss auch so bleiben (Vorgabe).
Ich brauche die Gesamtmenge an einem Tag (Spalte 2). Hab folgendes SELECT erstellt:
Das lässt alle Werte in Spalte 1 unberücksichtigt, die nicht dem Schema X-X-X-X entsprechen und funktioniert prima. Nun möchte ich auch noch die Zeilen auslassen, deren Wert in Spalte 2 unter 10 liegt. Das sind meist Tropfen oder Insulindosen, die bei der gewünschten Statistik nichts aussagen und nicht ausgewertet werden sollen. Ich habe zwar ein ALIAS für die Summe angegeben und erhalte auch bei Ausführung als Spaltenüberschrift "summe". Aber ein WHERE ... AND summe<10 funktioniert nicht. Hab auch mit REGEXP und SUM experimentiert, aber bin nicht zum Ziel gekommen. Wie muss man das richtig machen?
Viele Grüße
Norbert
mühe mich vergeblich ein SELECT mit WHERE hinzubekommen. Kann jemand helfen?
Wir haben eine Tabelle, die ein Feld C7105 (erste Spalte) enthält. Darin stehen die Medikamenten-Einnahmen für morgens, mittags, abends und nachts, getrennt durch Bindestriche. Muss auch so bleiben (Vorgabe).
1-0-0-0 | 1 |
½-0-½-0 | 1 |
1½-1-1-½ | 4 |
20-20-20-0 | 60 |
½-0-0-0 | 0,5 |
Code:
SELECT C7105, SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(REPLACE(C7105,'1½',1.5),'½',0.5),'-', 1), '-', -1)+ SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(REPLACE(C7105,'1½',1.5),'½',0.5),'-', 2), '-', -1)+ SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(REPLACE(C7105,'1½',1.5),'½',0.5),'-', 3), '-', -1)+ SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(REPLACE(C7105,'1½',1.5),'½',0.5),'-', 4), '-', -1) AS summe FROM t710 WHERE (LENGTH(C7105) - LENGTH(REPLACE(C7105,'-','')))=3
Viele Grüße
Norbert
Comment