SOLVED: need sql select

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/solved_need_sql_select_203498/page_1 - zur Vollversion wechseln!


Neo1010 schrieb am 08.01.2009 um 21:36

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


that schrieb am 08.01.2009 um 22:12

Und was hast du schon versucht?

Hint: "Outer Join" könnte helfen


Neo1010 schrieb am 08.01.2009 um 22:17

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 schrieb am 08.01.2009 um 22:22

wtf... auf das wär ich mit deiner beschreibung NIE gekommen. hätte grad was ganz anderes posten wollen.


Neo1010 schrieb am 08.01.2009 um 22:44

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 schrieb am 08.01.2009 um 23:10

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.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026