Bettis Posted July 1, 2004 Share Posted July 1, 2004 Jag håller på med en utsökning från en databas som jag trode skulle vara enkel men det blev problem. Jag har en tabell där med två kolumner en för signatur och en för frånvarodag. Jag vill göra en utsökning där jag får fram alla som finns med som signatur plus alla veckans arbetsdagar. Dvs må, ti, on, to, fr men jag får det inte att gå ihop. Finns det någon som vet hur man ska bära sig åt!! Denna signatur skulle jag sen vilja kopla ihop mot en personaltabel i vilken jag sen får ut namn o eftenamn. SELECT Personal.Efternamn, Personal.Förnamn FROM Tillgänglighet_Vikarier, Personal WHERE Personal.Sign = Tillgänglighet_Vikarier.Vik_Sign AND Dag='må' AND Dag= 'ti' AND Dag ='on' AND Dag='to' AND Dag='fr'; Snälla hjääälp /Bettis Link to comment Share on other sites More sharing options...
Anders... Posted July 1, 2004 Share Posted July 1, 2004 Hej ! Jag måste säga att jag inte riktigt förstår hur du har organiserat din data.. . och vad du vill få ut!! Ge ett exemplet på hur du vill få ut datan så kan jag skriva frågan åt dig... (även hur din tabell ser ut!) Din fråga är som du skrivt ovan är lite galen då du vill att fältet Dag ska vara massor av saker samtidigt, både Mån, tis ons.. och det går inte ! /A... Link to comment Share on other sites More sharing options...
Anjuna Moon Posted July 1, 2004 Share Posted July 1, 2004 Jag gissar att tabellen Tillgänglighet_Vikarier innehåller en post för varje vikarie och varje dag i veckan denne kan jobba. Alltså, CB kan jobba måndagar och tisdagar medan DD måndagar och onsdagar Vik_Sign Dag ---------- ----- CB Må CB Ti DD Må DD On Kan detta stämma tro? Link to comment Share on other sites More sharing options...
Anders... Posted July 1, 2004 Share Posted July 1, 2004 Ungefär vad jag trodde också =) Men varför har hon då försökt blanda in AND Dag = ... känns ju lite onödigt, jag måste ha missat något i hennes tanke! mysql> [color="#0000ff"]SELECT[/color] * [color="#0000ff"]FROM[/color] test; +[color="#006400"]------+------+[/color] | sign | dag | +[color="#006400"]------+------+[/color] | aj | mån | | aj | tor | | hk | ons | | hk | tor | | hk | sön | +[color="#006400"]------+------+[/color] 5 rows [color="#0000ff"]IN[/color] set (0.00 sec) mysql> [color="#0000ff"]SELECT[/color] * [color="#0000ff"]FROM[/color] test2; +[color="#006400"]------+--------+[/color] | sign | name | +[color="#006400"]------+--------+[/color] | aj | anders | | hk | hans | +[color="#006400"]------+--------+[/color] 2 rows [color="#0000ff"]IN[/color] set (0.00 sec) mysql> [color="#0000ff"]SELECT[/color] dag, name [color="#0000ff"]FROM[/color] test join test2 on test.sign = test2.sign [color="#0000ff"]ORDER BY[/color] dag; +[color="#006400"]------+--------+[/color] | dag | name | +[color="#006400"]------+--------+[/color] | mån | anders | | ons | hans | | sön | hans | | tor | anders | | tor | hans | +[color="#006400"]------+--------+[/color] 5 rows [color="#0000ff"]IN[/color] set (0.00 sec) Var det något i stil med detta du menade Bettis ?? Detta är en förenklad sak..... men är det så du menar ?? Det var ett tag sedan jag gjorde databaser... så ni får ursäkta mig om jag inte gör det optimalt.... /A... [inlägget ändrat 2004-07-01 23:12:22 av Anders...] [inlägget ändrat 2004-07-01 23:12:54 av Anders...] Link to comment Share on other sites More sharing options...
Bettis Posted July 1, 2004 Author Share Posted July 1, 2004 Ja ursäkta .. jag var otydlig ... Såhär Jag vill kunna få ut de vikarier som kan jobba en hel vecka. dvs sign (o helst namnen som finns i en annan tabell -personal) på dessa Inte vilken dag de kan.. utan Vilka som kan ALLA veckans dagar. Tabellen tillg_vik Vik_Sign Dag Eek fr Eek må Eek ti Eek on Eek to Jgh må Jgh fr personal har sign och personuppg .. hoppas jag var lite mer tydlig Å tack så mycket för att ni hjälper mej =) [inlägget ändrat 2004-07-01 23:30:29 av Bettis] Link to comment Share on other sites More sharing options...
Anjuna Moon Posted July 1, 2004 Share Posted July 1, 2004 Om man förutsätter att varje vikarie kan ha högst 5 poster och minst 0 poster i tabellen så kan man få ut alla som kan jobba veckans alla dagar med: [color="#0000ff"]SELECT[/color] P.Efternamn, P.Förnamn [color="#0000ff"]FROM[/color] Tillgänglighet_Vikarier TV [color="#0000ff"]INNER JOIN[/color] Personal P ON P.Sign = TV.Vik_Sign [color="#0000ff"]GROUP BY[/color] P.Efternamn, P.Förnamn [color="#0000ff"]HAVING[/color] ([color="#0000ff"]COUNT[/color](TV.Dag) = 5) Link to comment Share on other sites More sharing options...
Anders... Posted July 1, 2004 Share Posted July 1, 2004 Det är nog bäst att antaga att man vet hur många dagar det är.. blir väl lite enklare så ! mysql> [color="#0000ff"]SELECT[/color] * [color="#0000ff"]FROM[/color] test; +[color="#006400"]------+------+[/color] | sign | dag | +[color="#006400"]------+------+[/color] | aj | mån | | aj | tis | | aj | tor | | hk | ons | | hk | tor | | hk | sön | | aj | ons | | aj | fre | +[color="#006400"]------+------+[/color] mysql> [color="#0000ff"]SELECT[/color] * [color="#0000ff"]FROM[/color] test2; +[color="#006400"]------+--------+[/color] | sign | name | +[color="#006400"]------+--------+[/color] | aj | anders | | hk | hans | +[color="#006400"]------+--------+[/color] mysql> [color="#0000ff"]SELECT[/color] name [color="#0000ff"]FROM[/color] test join test2 on test.sign = test2.sign [color="#0000ff"]GROUP BY[/color] name [color="#0000ff"]HAVING[/color] ([color="#0000ff"]COUNT[/color](test.dag) = 5); +[color="#006400"]--------+[/color] | name | +[color="#006400"]--------+[/color] | anders | +[color="#006400"]--------+[/color] Sov dax ! =) /A... Link to comment Share on other sites More sharing options...
Bettis Posted July 2, 2004 Author Share Posted July 2, 2004 Tack så mycket nu fungerar det!! skulle satt högre betyg.. men de blev fel sorry Tack tack Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.