Just nu i M3-nätverket
Gå till innehåll

Utsökning från en tabell


Bettis

Rekommendera Poster

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

 

Länk till kommentar
Dela på andra webbplatser

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...

 

Länk till kommentar
Dela på andra webbplatser

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?

 

Länk till kommentar
Dela på andra webbplatser

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...]

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

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)

 

Länk till kommentar
Dela på andra webbplatser

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...

 

Länk till kommentar
Dela på andra webbplatser

Tack så mycket nu fungerar det!!

 

skulle satt högre betyg.. men de blev fel sorry ;)

 

Tack tack

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...