"We are back" « oc.at

SOLVED: need sql select

Neo1010 08.01.2009 - 21:36 823 5
Posts

Neo1010

.
Registered: May 2003
Location: -
Posts: 1212
Hello!

So nach einigen Stunde voller Ärger, will ich euch nun um eure Hilfe bitten:
Hier ein Teil der Tables sollte aber für die Aufgabe reichen:

table project (
project_id int,
name varchar(32)
)

table operation (
project_id int,
operatoin_id int,
startDate char(10),
endDate char(10)
)

So ein Projekt kann 1 oder mehrere Operations haben muss aber keine haben. Das Select soll project_name liefern und startDate sowie endDate.
(also pro Projekt eine Zeile)

Beispiel1:

Projekt (1,"test")
Operation (1,1,"01.01.2001","02.02.2002")

Dann wäre das Ergebnis: "test","01.01.2001","02.02.2002"



Beispiel2:
Hier gibt es eine Operation die noch kein endDate hat und somit nicht abgeschlossen ist. Somit soll das Select auch null bei endDate liefern

Projekt (1,"test")
Operation (1,1,"01.01.2001","02.02.2002")
Operation (1,2,"03.03.2001",null)


Beispiel3:
Hier gibt es keine Operation zu einem Projekt

Projekt (1,"test")

Dann wäre das Ergebnis: "test",null,null


PS: um das varchar date mit min und max funktionen zu verwenden muss es erst umgewandelt werden=>str_to_date(startDate,'%d.%m.%Y')

Hoffe es ist soweit klar.

Danke schon mal für eure Hilfe
Bearbeitet von Neo1010 am 09.01.2009, 08:38

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Und was hast du schon versucht?

Hint: "Outer Join" könnte helfen

Neo1010

.
Registered: May 2003
Location: -
Posts: 1212
so endlich gschafft kann geclosed werden:

SELECT P.Name, MIN(str_to_date(o.startDate,'%d.%m.%Y')),
(SELECT MAX(str_to_date(ox.endDate,'%d.%m.%Y')) FROM Operation ox
WHERE p.project_id NOT IN (SELECT project_id FROM Operation WHERE endDate IS NULL) AND
ox.project_id=p.project_id )
FROM Project P
LEFT JOIN Operation O
ON O.project_id = P.project_id
GROUP BY P.project_id

^^

aNtraXx

trailer park king
Avatar
Registered: Apr 2002
Location: Linz
Posts: 6907
wtf... auf das wär ich mit deiner beschreibung NIE gekommen. hätte grad was ganz anderes posten wollen.

Neo1010

.
Registered: May 2003
Location: -
Posts: 1212
hmm.... sry falls ichs schlecht beschrieben hab, aber ich war mir doch sicher das es so sehr verständlich ist ;)

naja hat sich ja jetzt erledigt

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von Neo1010
so endlich gschafft kann geclosed werden:

Danke für die Lösung (obwohl sie mir etwas undurchsichtig vorkommt ;)). Threads mit Lösung werden aber normalerweise nicht geschlossen, sondern der Threadstarter wird ersucht, die Class im ersten Posting auf "Solved" zu setzen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz