Jump to content

SQL Befehl hilfe wird benötigt


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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=1
AND st.TEXT Between :K_Stand_Start and :K_Stand_Ende
ORDER 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.

 

Link zu diesem Kommentar

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 identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:   
*Action:
Fehler in Zeile: 60 Spalte: 5

Link zu diesem Kommentar

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)

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...