Ok, dette bliver ikke let at forklare, jeg er kommet frem til hvordan det ca., skal gøres men jeg kan ikke tænke mig helt til det sidste.
Jeg har 3 tabels "Freelance personale" "arrangementet" og "Crossfield" som har relationer til de 2 første ID´s
Det jeg skal havde lavet nu i asp, er en list over alle Freelance men dem som der er relationer til i crossfield til det arrangementet man under, skal ikke vise eller havde en anden color hvis efter hvad for en status det har i crossfield!
Det er let at få den til at vise hele listen over Freelance personale, og jeg har også fundet ud af at lave INNER JOIN som kun viser mig dem som har relationer i crossfield, men hvordan tager jeg dem fra den anden liste eller laver deres color om?
Du skal havde tre tabeller: tbl 1: Freelance tbl 2: Arrangementer tbl 3: Crossfield
I tbl 1 skal du havde følgende felter: ID, Freelance telefonnr, navn, job mm I tbl 2 skal du havde hvad arregementerne har brug for, så som, job beskrivelse, antal freelance arbejdere de søger plus et ID m.m. I tbl 3 skal du kun havde de oplysninger om de personer der er koblet til et arr. (Det vil soge IDfreelancer, IDArrangement, løn, mm) Du behøver ingen status da de kun behøver at stå her til det arr.
Det vil kort sagt sige at der skal oprettes freelancere kun i freel.tbl'en og arrangementerne kun i arr.tbl'en. En rutine henter derved automatisk de personer over der tilkobles et projekt. Og de der siger nej-tak bliver ikke overført til crossfielden.
Nu skulle der være forholdsvis nemt at hive dem ud der er nødvendige: De der er tilkoblet et projekt: SELECT free.ID, free.navn, arr.type, arr.varighed, cross.loen FROM freelancer free, arrangement arr, crossfield cross WHERE arr.ID = cross.arrID AND free.ID = cross.IDfree
Hej powell! Det er lige det jeg har lavet, de 3 tbl, men jeg skal havde en status fordi at en person kan sig nej, skal den blive rød på listen, og en person som har sagt "måske/vender tilbage/telfonsvare" skal ikke vise mere på listen og vise et andet sted, som måske ender med det bliver et ja eller nej, dem der siger ja skal eller ikke vises der mere!
Så det jeg skal vide er hvor jeg tager alt fra freelance tbl, og da man er under arrangementet ved jeg godt det ID, så jeg skal ikke bruge noget fra den tbl, men jeg kan ikke tage dataene ud så jeg for alle Freelance og deres status i Crossfield hvis de er der, og hvis de ikke er der for jeg ikke noget for den persons status! eller er det fordi jeg skal lave 2 open con?!
Du for lige noget af den kode jeg kommet frem til, tbl har nogle andre navn i databasen
SELECT tbMedarbejdere.FirstName, tbARRlinkMED.*, * FROM tbMedarbejdere INNER JOIN tbARRlinkMED ON tbMedarbejdere.UserID = tbARRlinkMED.IDMed WHERE (((tbARRlinkMED.IDARR)=##her skal stå arrangementer man er på id##)) ORDER BY tbMedarbejdere.FirstName;
Det give mig alle dem som er i tbARRlinkMED (Crossfield) navne og status under det arrangementer man er på!
SELECT tbMedarbejdere.* FROM tbMedarbejdere ORDER BY tbMedarbejdere.FirstName;
Denne give mig alle freelancer!
Men det jeg ville havde ud er alle freelancer + hvis de er i tbARRlinkMED deres status der! Eller kan man ikke det?
I så fald tror jeg at vi skal lave 4 tabeller. (blot for dynamikkens skyld)
tbl 1: Freelancerne og alle deres data inkl. ID tbl 2: Arrangemenderne plus ID tbl 3: Crossfielden indeholdene FreeID, ArrID, StatusID, evtLøn tbl 4: ID, Ja, Nej, Måske, o.s.v.
Derfor kan du stadig nøjes med at lave en forespørgsel.
Her er så forespørgslen hvis du ønsker at se hvilke der er tilkoblet et givent arrangement, og evt status på de andre.
SELECT f.*, a.* FROM freelancer f, arrangement a, crossfield c, status s WHERE ##ArangementID## = c.ArrID AND f.ID = c.freeID AND s.ID = c.statusID
Hey Powell, der er lige gået lidt tid før jeg kan kunne teste det! Jeg har lavet den 4. tbl og rette det du har skrevet til mine navne, måske er det her min fejl er, for jeg få kun de Freelancere som er tilslutte Arrangementerne ca. 17 gang med de samme info, og så ikke helt! jeg er helt lost over hvad det er jeg får men det er ikke alle Freelanceren + hvis der er deres tilslutteting til Arrangementerne og status!
Mine navn er ikke de samme (og jeg kan godt eller ikke så smarte) men her er den lavet om: SELECT tbMedarbejdere.*, tbArrangementer.* FROM tbMedarbejdere, tbArrangementer, tbARRlinkMED, tbsvar WHERE 2 = tbARRlinkMED.IDARR AND tbMedarbejdere.UserID = tbARRlinkMED.IDMed AND tbsvar.IDsvar = tbARRlinkMED.ALsvarID
Jeg ved ikke helt hvad du skal vide for at kunne se hvad der er galt, men så skal du få det M.v.h Johan
Prøv nedenstående: SELECT DISTINCT tbMedarbejdere.* M, tbArrangementer.* A FROM tbMedarbejdere M, tbArrangementer A, tbARRlinkMED AR, tbsvar SV WHERE AR.IDARR = 2 AND M.UserID = AR.IDarr AND M.ID = AR.IDMed AND SV.ID = AR.ALsvarID
Du mangler relationen mellem arrangement og tbARRLink tabelen.
Har rette den til: SELECT DISTINCT tbMedarbejdere.*, tbArrangementer.* FROM tbMedarbejdere, tbArrangementer, tbARRlinkMED, tbsvar WHERE tbARRlinkMED.IDARR=2 And tbArrangementer.ARRID=tbARRlinkMED.IDarr And tbMedarbejdere.UserID=tbARRlinkMED.IDMed And tbsvar.IDsvar=tbARRlinkMED.ALsvarID;
Men denne give mig jo kun de folk der er med, den er den samme som, den jeg selv skrev i starten!
SELECT tbMedarbejdere.FirstName, tbARRlinkMED.*, * FROM tbMedarbejdere INNER JOIN tbARRlinkMED ON tbMedarbejdere.UserID = tbARRlinkMED.IDMed WHERE (((tbARRlinkMED.IDARR)=##her skal stå arrangementer man er på id##)) ORDER BY tbMedarbejdere.FirstName;
eh, jeg ved ikke helt, om jeg har skrevet godt nok hvad det vi skal finde frem til?
Jeg skal lave en left join, og en where men null og min arrangemente id.
Jeg tror jeg gå væk fra det du siger med at lave en tbl til Status da den kun være en af tingen af gangen kan jeg ikke se nogle grund til at lave det på den måde! SELECT tbMedarbejdere.*, tbARRlinkMED.* FROM tbMedarbejdere LEFT JOIN tbARRlinkMED ON tbMedarbejdere.UserID = tbARRlinkMED.IDMed WHERE tbARRlinkMED.IDARR = #her skal stå arrangementer man er på id# OR tbARRlinkMED.IDARR is null ORDER BY tbMedarbejdere.FirstName;
Jeg tror dette er svare! så den kommer til at se sådan ud!
Har forsøgt at sende dig databasen retur med ændringer og en forespørgsel der kan give dig hvem der har svaret tilbage ang. et arrengement og hvad de har svaret. Men den gik ikke igennem, vil prøve igen når jeg kommer hjem i morgen.
jeg har ikke fået det til at virke rigtig og nu laver jeg det på en anden måde, men få points for alt den hjælp.
=)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.