Cimi_62 0 Geschrieben 21. Mai 2014 Melden Teilen Geschrieben 21. Mai 2014 Hallo leute bin neu hier und habe eine Frage zu meinem SQL Befehl, den ich auch soweit erstellt habe und auch funktioniert. Jedoch brauch ich noch eine zusätzliche Funktion welches einfach nicht klappen möchte. Für Hilfe wäre ich dankbar. SELECT g.id AS GESCHAEFTSFELD_ID, g.NAME AS GESCHAEFTSFELD, e.ID AS entwicklungsbereich_ID, e.NAME AS entwicklungsbereich, e.bereich AS entwicklungsbereich_kurzz, p.projektid AS projekt_id, to_char(p.thema) AS projekt, p_s.sort_order AS projekt_status_sort_order, p_s.is_completed AS projekt_is_completed, INITCAP(p_s.bezeichnung) AS projekt_status, NVL2(t.id,t.aufwand,0) AS plan_stunden, NVL2(a.aufgabeid,get_stunden_aufgabe(a.aufgabeid),0) AS ist_stunden, NVL2(a.mitarbeiterid,m.nachname || ', ' || m.name,NULL) AS aufgabe_bearbeiter, TO_CHAR(a.termin,'DD.MM.YYYY') AS aufgabe_termin, t.GATEABSTAND, t.BEARBEITUNGSZEIT, f_st.TERMIN, (f_st.TERMIN -t.GATEABSTAND *7) AS ENDTERMIN, (f_st.TERMIN -t.GATEABSTAND *7) -t.BEARBEITUNGSZEIT*7/5 AS START FROM ( SELECT t.id FROM taetigkeiten t WHERE t.bis IS NULL) p LEFT JOIN taetigkeiten t ON (t.id=p.id)LEFT JOIN k_stand st ON (st.id=t.k_standid)LEFT JOIN dvp d ON (d.id=t.dvpid)LEFT JOIN aufgaben_taetigkeiten_zuord tz ON (tz.tid=t.tid)LEFT JOIN aufgaben a ON (a.aufgabeid=tz.aufgabeid)LEFT JOIN katalog_aufgaben k ON (t.katid=k.katid)LEFT JOIN projekt_status a_s ON (a.status=a_s.projekt_status_id)LEFT JOIN mitarbeiter m ON (a.mitarbeiterid=m.mitarbeiterid)LEFT JOIN abteilungen abt ON (abt.abteilungid=k.abteilungsid)LEFT JOIN projekte f ON (f.projektid=d.projectid)LEFT JOIN projekt_status f_s ON (f.status=f_s.projekt_status_id)LEFT JOIN FAHRZEUG_K_STAND f_st ON (f_st.KSTANDID=st.id AND f_st.FAHRZEUGID=f.PROJEKTID)LEFT JOIN projekte p ON (p.projektid=get_projektid_from_fahrzeugid(f.projektid))LEFT JOIN projekt_status p_s ON (p.status=p_s.projekt_status_id)LEFT JOIN ENTWICKLUNGSBEREICHE e ON (e.id=p.ENTWICKLUNGSBEREICHID)LEFT JOIN GESCHAEFTSFELD g ON (g.id=e.GESCHAEFTSFELDID)WHERE g.ACTIVE_FLAG=1 AND e.AKTIV=1 AND k.active=1AND st.TEXT Between :K_Stand_Start and :K_Stand_EndeORDER BY g.NAME ASC, e.NAME ASC, TO_CHAR(p.THEMA) ASC, TO_CHAR(f.THEMA) ASC, st.SORT_ORDER ASC, k.NAME ASC Nun brauche ich noch diese Funktion WHERE ENDTERMIN Between :Start_Datum and :Ende_Datum weiß aber nicht genau wo ich diese ansetzen muss. Zitieren Link zu diesem Kommentar
Pathomorph 1 Geschrieben 21. Mai 2014 Melden Teilen Geschrieben 21. Mai 2014 einfach hinter: WHERE g.ACTIVE_FLAG=1 AND e.AKTIV=1 AND k.active=1AND st.TEXT Between :K_Stand_Start and :K_Stand_Ende AND ENDTERMIN Between :Start_Datum and :Ende_Datum Zitieren Link zu diesem Kommentar
Cimi_62 0 Geschrieben 22. Mai 2014 Autor Melden Teilen Geschrieben 22. Mai 2014 Danke für deine Antwort, aber genau das hatte ich mir auch gedacht gehabt aber bekomm immer eine Fehlermeldung. Bekomme schon bald die Krise :D ich weiß nicht woran das liegt. Hier die Fehlermeldung, vielleicht hilft es ja weiter. ORA-00904: "ENDTERMIN": invalid identifier00904. 00000 - "%s: invalid identifier"*Cause: *Action:Fehler in Zeile: 60 Spalte: 5 Zitieren Link zu diesem Kommentar
Pathomorph 1 Geschrieben 22. Mai 2014 Melden Teilen Geschrieben 22. Mai 2014 zu spät gesehen... ENDTERMIN ist kein Feld sondern der Name der Spalte, den du selbst in der Abfrage angibst. Richtig ist das so: WHERE g.ACTIVE_FLAG=1 AND e.AKTIV=1 AND k.active=1 AND st.TEXT Between :K_Stand_Start and :K_Stand_Ende AND (f_st.TERMIN -t.GATEABSTAND *7) Between :Start_Datum and :Ende_Datum Statt ENDTERMIN--> (f_st.TERMIN -t.GATEABSTAND *7) 1 Zitieren Link zu diesem Kommentar
Cimi_62 0 Geschrieben 22. Mai 2014 Autor Melden Teilen Geschrieben 22. Mai 2014 Hey super, vielen dank für die Antwort. Darauf könnte ich wirklich auch selber kommen. Nur komisch ist, dass ich es bei einer anderen Abfrage genau so hatte und es dort auch funtkionierte als ich auch den Namen angegeben hab. Deswegen hatte ich mich wohl dran festgebissen es auch so zu lösen. Aufjedenfall funktioniert es jetzt und danke für die Hilfe. Hab aber noch eine kurze Frage. Das Feld endtermin hat manchmal keinen Eintrag. Im befehl davor hatte ich es so gelöst gehabt. Where NVL(Endtermin,SysDate+10000) Between :Start_Datum AND :Ende_Datum Kann ich das auch für die obere abfrage so bestimmen Ok habs raus, danke für deine bemühungen Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.