Servus zusammen,
ich habe einen SQL-Query der sich mir nicht so ganz erschließt... das heißt ich kann ihn für mich nicht Sinnvoll Gruppieren und damit dann auch Anpassen.
[src=mysql]SELECT @IF('@SUB(FORM_NAME)' = 'Form1', 'status from (SELECT ''Neu'' as ''status'' ,1 as orderby WHERE ''@SUB(Status)'' = ''Neu'' union SELECT ''Registriert'',2 WHERE ''@SUB(Status)'' <> ''In Bearbeitung'' AND ''@SUB(Status)'' <> ''Gelöst'' AND ''@SUB(Status)'' <> ''Ausgesetzt'' union select ''In Bearbeitung'',3 union select ''Ausgesetzt'',5 union select ''Gelöst'',6) status order by orderby ', 'status from (SELECT ''Neu'' as ''status'' ,1 as orderby union select ''Registriert'',2 union select ''In Bearbeitung'',3 union select ''Ausgesetzt'',5 union select ''Gelöst'',6) status order by orderby')[/src]
@SUB() wird bei der Verarbeitung durch einen Feldnamen ersetzt - Normal sollte das nur SQL sein - kann aber leider auch sein das ein Paar Befehle z.B. das@IF.. auch noch Steuerungsfunktionen aus der Anwendung sind die den SQL-Befehl ausführt. Die Dokumentation ist hier etwas "ungenügend"
Ich müsste die Abfrage nun um einen zusätzlichen Wert ergänzen bzw. veringern.
Das Ergebnis kenne ich - es wird in Abhängigkeit des Inhaltes von "Status" eine Liste an Werten ausgeben, wobei die Werte nicht aus einer Tabelle kommen sondern fix in der SQL-Abfrage vorgegeben sind.
--- [2013-08-26 16:12 CEST] Automatisch zusammengeführter Beitrag ---
[src=mysql]SELECT @IF('@SUB(FORM_NAME)' = 'Form1', 'status from (SELECT ''vorgeschlagen'' as ''status'' ,1 as orderby WHERE ''@SUB(status)'' = ''vorgeschlagen'' union SELECT ''in inhaltlicher Prüfung'',2 WHERE ''@SUB(status)'' <> ''in redaktioneller Prüfung'' AND ''@SUB(status)'' <> ''Angenommen'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''in redaktioneller Prüfung'',3 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''Angenommen'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''angenommen'',4 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''in inhalticher Prüfung'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''abgelehnt'',5 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''in inhalticher Prüfung'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''abgelaufen/erledigt'',6 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''in inhalticher Prüfung'' AND ''@SUB(status)'' <> ''in redaktioneller Prüfung'') status',)[/src]
So funktioniert es wie gewünscht... k.a warum - aber es passt nun
ich habe einen SQL-Query der sich mir nicht so ganz erschließt... das heißt ich kann ihn für mich nicht Sinnvoll Gruppieren und damit dann auch Anpassen.
[src=mysql]SELECT @IF('@SUB(FORM_NAME)' = 'Form1', 'status from (SELECT ''Neu'' as ''status'' ,1 as orderby WHERE ''@SUB(Status)'' = ''Neu'' union SELECT ''Registriert'',2 WHERE ''@SUB(Status)'' <> ''In Bearbeitung'' AND ''@SUB(Status)'' <> ''Gelöst'' AND ''@SUB(Status)'' <> ''Ausgesetzt'' union select ''In Bearbeitung'',3 union select ''Ausgesetzt'',5 union select ''Gelöst'',6) status order by orderby ', 'status from (SELECT ''Neu'' as ''status'' ,1 as orderby union select ''Registriert'',2 union select ''In Bearbeitung'',3 union select ''Ausgesetzt'',5 union select ''Gelöst'',6) status order by orderby')[/src]
@SUB() wird bei der Verarbeitung durch einen Feldnamen ersetzt - Normal sollte das nur SQL sein - kann aber leider auch sein das ein Paar Befehle z.B. das@IF.. auch noch Steuerungsfunktionen aus der Anwendung sind die den SQL-Befehl ausführt. Die Dokumentation ist hier etwas "ungenügend"
Ich müsste die Abfrage nun um einen zusätzlichen Wert ergänzen bzw. veringern.
Das Ergebnis kenne ich - es wird in Abhängigkeit des Inhaltes von "Status" eine Liste an Werten ausgeben, wobei die Werte nicht aus einer Tabelle kommen sondern fix in der SQL-Abfrage vorgegeben sind.
--- [2013-08-26 16:12 CEST] Automatisch zusammengeführter Beitrag ---
[src=mysql]SELECT @IF('@SUB(FORM_NAME)' = 'Form1', 'status from (SELECT ''vorgeschlagen'' as ''status'' ,1 as orderby WHERE ''@SUB(status)'' = ''vorgeschlagen'' union SELECT ''in inhaltlicher Prüfung'',2 WHERE ''@SUB(status)'' <> ''in redaktioneller Prüfung'' AND ''@SUB(status)'' <> ''Angenommen'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''in redaktioneller Prüfung'',3 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''Angenommen'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''angenommen'',4 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''in inhalticher Prüfung'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''abgelehnt'',5 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''in inhalticher Prüfung'' AND ''@SUB(status)'' <> ''Abgelehnt'' AND ''@SUB(status)'' <> ''abgelaufen/erledigt'' union select ''abgelaufen/erledigt'',6 WHERE ''@SUB(status)'' <> ''vorgeschlagen'' AND ''@SUB(status)'' <> ''in inhalticher Prüfung'' AND ''@SUB(status)'' <> ''in redaktioneller Prüfung'') status',)[/src]
So funktioniert es wie gewünscht... k.a warum - aber es passt nun
Zuletzt bearbeitet: