webForumDet fria alternativet

Loopa ut data från två tabeller

3 svar · 285 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

:) :e
Hej!

Har ett problem som jag inte lyckas få till...

Jag har fyra tabeller tblUsers, tblTime, tblTask och tblOtherTime.

tblTask är joinad med tblTime. tblTask innehåller uppdragsinformation och tblTime tidsinformation om uppdraget.
Dessa tabeller hör till en befintlig applikation.

Jag har lagt till en tabell som heter tblOtherTime som ska hantera "avvikelsetid" dvs sjukdom, ledighet, semester mm.

Jag vill loopa ut all information för att kunna presentera en "rapport" där både info kommer från tblTask/tblTime och tblOtherTime. Dvs både uppdrag och eventuell avvikelse tid skall skrivas ut.

Något såhär:

2005-05-02 07:00:00 - 16:00:00 Uppdrag 1
2005-05-03 07:00:00 - 12:00:00 Uppdrag 2
2005-05-03 12:00:00 - 16:00:00 Vård av sjukt barn
2005-05-04 07:00:00 - 16:00:00 Semester
2005-05-04 07:00:00 - 16:00:00 Uppdrag 3

Denna info skall hämtas från två tabeller enligt nedan:
post 1 tblTask/tblTime
post 2 tblTask/tblTime
post 3 tblOtherTime
post 4 tblOtherTime
post 5 tblTask/tblTime

Jag vet att om jag hade ´gjort det från början skulle en annan databasstruktur valts, men nu är det som det är och det går inte ändra...

Finns det någon vänlig själ som har någon lösning på detta delikata problem????

Mvh
Henrik

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Beskriv hur tabellerna är definierade (i form av create table) när du frågar något

select ti.date,ta.taskName
from tblTask ta 
join tblTime ti on ta.??? = ti.???
union all
select date,otherTimeName
from tblOtherTime 
order by date desc

Flyttas från ASP

devotionMedlem sedan jan. 20013 582 inlägg
#3

:)
Hej!!

Jo, det fungerade ju!!!

SELECT  tblTask.startDate, tblTask.StopDate, tblTask.Task, tblTask.TaskNr, tblTime.Time, tblTime.User
FROM  tblTask
INNER JOIN tblTime ON tblTask.Id = tblTime.TaskId
WHERE tblTime.User = 'Henrik'
UNION ALL
SELECT StartDate, StopDate, Spec, Kod, Time, User
FROM tblOtherTime
WHERE User = 'Henrik'
ORDER BY tblTask.StartDate DESC;

Har mixtrat lite med koden så nu ser den ut som ovan. Är WHERE-delen rätt? jag fick ha den på två ställen för det skulle fungera...

Hur fungerar UNION?

Mvh
Henrik

CompusaMedlem sedan jan. 20023 327 inlägg
#4

The UNION command is used to select related information from two tables, much like the JOIN command. However, when using the UNION command all selected columns need to be of the same data type.

Note: With UNION, only distinct values are selected.

http://www.w3schools.com/sql/sql_union.asp

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)