Genau solch eine gewaltige SQL-Abfrage habe ich aufgelöst. Jede Änderung der Abfrage bereitete mir Kopfschmerzen. Mein Sohn hat mir das zwar alles erklärt, aber in der Komplexität ist es mir zu kompliziert.
Code
sSQL = "SELECT " + "aufgabenliste" + "._id, " +
"CASE WHEN "+ "aufgaben_table" +".aufgaben = '"+keine_aufgabe+"' THEN '"+keine_aufgabe_aus_strings+"' ELSE "+ "aufgaben_table" +".aufgaben END AS aufgaben, " +
"CASE WHEN "+ "bereiche_table "+".bereiche = '"+kein_bereich+"' THEN '"+kein_bereich_aus_strings+"' ELSE "+"bereiche_table" +".bereiche END AS bereiche, " +
"intervall" + ".intervalle, " +
"aufgabenliste" + ".notiz, " +
"(strftime('%d.%m.%Y %H:%M:%S', aufgabe_erteilt_datum)) AS aufgabe_erteilt_datum, " +
"CASE WHEN (julianday('"+ StringOfStringbuilder1 +"') - julianday(" + "aufgabenliste" + ".aufgabe_erstelldatum))< 1 THEN '"+bearbeitet+"' ELSE '' END AS bearbeitet, " +
"(strftime('%d.%m.', termin)) AS termin, " +
"bereiche_table" + ".reihenfolge"+id_orte+", " +
"(strftime('%Y.%m.%d', termin)) AS termin2 " +
"FROM " +
"aufgabenliste" + " " +
"JOIN " +
"aufgaben_table" + " ON (" + "aufgabenliste" + ".aufgabentyp_id=" + "aufgaben_table" + "._id) " +
"JOIN " +
"bereiche_table" + " ON (" + "aufgabenliste" + ".bereichs_id=" + "bereiche_Table" + "._id) " +
"JOIN " +
"intervall" + " ON (" + "aufgabenliste" + ".intervall_id=" + "intervall" + "._id) " +
"WHERE " +
"aufgabenliste" + ".orts_id="+id_orte+" " +
"AND " +
"julianday('"+ StringOfStringbuilder1 +"') - julianday(" + "aufgabenliste" + ".aufgabe_erstelldatum) >= CASE WHEN julianday('"+ StringOfStringbuilder1 +"') - julianday(" + "aufgabenliste" + ".aufgabe_erstelldatum) >= 0 THEN CASE WHEN "+ "aufgabenliste" +".intervall_id <= 2 THEN 0 ELSE CASE WHEN "+"aufgabenliste"+".aufgabe_nicht_erledigt IS NOT NULL THEN 0 ELSE 1 END END ELSE -10000 END " +
"AND " +
"julianday(" + "aufgabenliste" + ".termin) - julianday('"+ StringOfStringbuilder1 +"') <= CASE WHEN "+"aufgabenliste"+".intervall_id == 1 THEN "+kein_intervall_ausDatabase+" WHEN "+ "aufgabenliste" +".intervall_id == 2 THEN "+einmalig_ausDatabase+" WHEN "+"aufgabenliste"+".intervall_id == 3 THEN "+taeglich_ausDatabase+" WHEN "+"aufgabenliste"+".intervall_id == 4 THEN "+woechentlich_ausDatabase+" WHEN "+"aufgabenliste" +".intervall_id == 5 THEN "+monatlich_ausDatabase+" WHEN "+"aufgabenliste"+".intervall_id == 6 THEN "+quartal_ausDatabase+" WHEN "+"aufgabenliste"+".intervall_id == 7 THEN "+halbjaehrlich_ausDatabase+" WHEN "+"aufgabenliste"+".intervall_id == 8 THEN "+jaehrlich_ausDatabase+" END " +
"ORDER BY "+Order_by_Spaltennummer+";"; */
Alles anzeigen