von muhtor » Mi, 26.06.2013 20:29
Hallo liebe Helfer,
anbei nochmal mein jetzt angepasster SQL text...
Wie das geschulte auge sieht funktioniert es nicht

und ich finde leider keine erklärung könnte mir jemand auf die Sprünge helfen...
Zum Verständnis er soll mir ausgeben wie viele Datensätze nach der Abfrage vorhanden sind und wieviele davon richtig sind bedingung dafür ist:
da & Grün = Richtig
nicht da & rot = Richtig
jeweils einmal eine Summe für Grün bzw Gruen und Rot...
Ist es Möglich in der SQL Abfrage auch mit Umlauten zu arbeiten so das ich in meiner Tabelle Wertung weiterhin den Wert Grün verwenden kann da ich dies leider nicht bedacht habe bei der Datenbank erstellung (in die Ecke geh und schäm) oder ist es möglich im Formular es einfach als Grün darzustellen und dann als Gruen zu hinterlegen?
Vielen Dank schon mal wieder für die Hilfe
euer Muhtor
Code: Alles auswählen
SELECT
"Bewerber-ID" AS "Bewerber-ID",
"Nachname" AS "Nachname",
"Vorname" AS "Vorname",
"Datum" AS "Datum",
"Beo1" AS "Beobachter",
"Beo1wer" AS "Wertung",
"Beo1bem" AS "Bemerkung",
"Beo2" AS "Beobachter",
"Beo2wer",
"Beo2bem" AS "Bemerkung",
"Projekt" AS "Projekt",
"da" AS "da",
SUM( "1" ) AS "Anzahl Datensätze",
SUM( CASE WHEN "Beo1" = :Beobachter AND "Beo1wer" = "Gruen" OR "Beo2" = :Beobachter AND "Beo2wer" = "Gruen" THEN 1 ELSE 0 END ) AS "Datensätze Grün",
SUM( CASE WHEN "Beo1" = :Beobachter AND "Beo1wer" = "Gelb" OR "Beo2" = :Beobachter AND "Beo2wer" = "Gelb" THEN 1 ELSE 0 END ) AS "Datensätze Gelb",
SUM( CASE WHEN "Beo1" = :Beobachter AND "Beo1wer" = "rot" OR "Beo2" = :Beobachter AND "Beo2wer" = "rot" THEN 1 ELSE 0 END ) AS "Datensätze Rot",
SUM( CASE WHEN "da" = True THEN 1 ELSE 0 END ) AS "Datensätze ja",
SUM( CASE WHEN "Datensätze Grün" = 1 AND "da" = True THEN 1 ELSE 0 END ) AS "Grün richtig",
SUM( CASE WHEN "Datensätze rot" = 1 AND "da" = False THEN 1 ELSE 0 END ) AS "Rot richtig"
FROM "Bewerbungen"
WHERE ( "Beo1" LIKE :Beobachter OR "Beo2" LIKE :Beobachter ) ORDER BY "Bewerber-ID" ASC, "Nachname" ASC, "Vorname" ASC
Hallo liebe Helfer,
anbei nochmal mein jetzt angepasster SQL text...
Wie das geschulte auge sieht funktioniert es nicht :D und ich finde leider keine erklärung könnte mir jemand auf die Sprünge helfen...
Zum Verständnis er soll mir ausgeben wie viele Datensätze nach der Abfrage vorhanden sind und wieviele davon richtig sind bedingung dafür ist:
da & Grün = Richtig
nicht da & rot = Richtig
jeweils einmal eine Summe für Grün bzw Gruen und Rot...
Ist es Möglich in der SQL Abfrage auch mit Umlauten zu arbeiten so das ich in meiner Tabelle Wertung weiterhin den Wert Grün verwenden kann da ich dies leider nicht bedacht habe bei der Datenbank erstellung (in die Ecke geh und schäm) oder ist es möglich im Formular es einfach als Grün darzustellen und dann als Gruen zu hinterlegen?
Vielen Dank schon mal wieder für die Hilfe
euer Muhtor
[code]SELECT
"Bewerber-ID" AS "Bewerber-ID",
"Nachname" AS "Nachname",
"Vorname" AS "Vorname",
"Datum" AS "Datum",
"Beo1" AS "Beobachter",
"Beo1wer" AS "Wertung",
"Beo1bem" AS "Bemerkung",
"Beo2" AS "Beobachter",
"Beo2wer",
"Beo2bem" AS "Bemerkung",
"Projekt" AS "Projekt",
"da" AS "da",
SUM( "1" ) AS "Anzahl Datensätze",
SUM( CASE WHEN "Beo1" = :Beobachter AND "Beo1wer" = "Gruen" OR "Beo2" = :Beobachter AND "Beo2wer" = "Gruen" THEN 1 ELSE 0 END ) AS "Datensätze Grün",
SUM( CASE WHEN "Beo1" = :Beobachter AND "Beo1wer" = "Gelb" OR "Beo2" = :Beobachter AND "Beo2wer" = "Gelb" THEN 1 ELSE 0 END ) AS "Datensätze Gelb",
SUM( CASE WHEN "Beo1" = :Beobachter AND "Beo1wer" = "rot" OR "Beo2" = :Beobachter AND "Beo2wer" = "rot" THEN 1 ELSE 0 END ) AS "Datensätze Rot",
SUM( CASE WHEN "da" = True THEN 1 ELSE 0 END ) AS "Datensätze ja",
SUM( CASE WHEN "Datensätze Grün" = 1 AND "da" = True THEN 1 ELSE 0 END ) AS "Grün richtig",
SUM( CASE WHEN "Datensätze rot" = 1 AND "da" = False THEN 1 ELSE 0 END ) AS "Rot richtig"
FROM "Bewerbungen"
WHERE ( "Beo1" LIKE :Beobachter OR "Beo2" LIKE :Beobachter ) ORDER BY "Bewerber-ID" ASC, "Nachname" ASC, "Vorname" ASC[/code]