Just nu i M3-nätverket
Jump to content

Utsökning från en tabell


Bettis

Recommended Posts

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

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

Anjuna Moon

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

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

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

Anjuna Moon

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

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

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

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...