Avatar billede andersschou Novice
29. februar 2012 - 11:04 Der er 5 kommentarer og
1 løsning

lave et quary der kan lave en tabel der...

har tabel der ser sådan ud:

medarbejdernr    fest    dato
1                fest1    21/5
1                fest2    22/5
2                fest1    24/5


vil gerne lave et quary der som resultat får

medarbejdernr    fest1    fest2
1                21/5    22/5
2                24/5    null

nogen der kan hjælpe
29. februar 2012 - 12:49 #1
Det er vel meningen, at der skal kunne være mere end to fester, og at festerne skal kunne have navne der ikke er forudsigelige, for eksempel:

medarbejdernr fest dato
1        abefest        21/5
1        fødeslesdag  22/5
2        abefest        23/5
2        gadefest      24/5
2        karneval      25/5

Så bliver det forfærdeligt vanskeligt (og jeg kender ingen løsning) i mysql at få et resultat opstillet i et varieret antal kolonner hvor kolonnerne tager navne efter festernes navne.  Men ansvaret for at opstille resultatet burde egenlig tilhøre den applikation du bruger, såsom en hjemmeside i php, til at kalde mysql.  Fortæl hvilken applikation du bruger og om det ikke er der du skal have resultatet vist, plus fortæl mere om indholdet af tabellen.  Jeg noterer mig, at skønt man normalt tænker på en fest som noget der finder sted en bestemt dag, så har du flere forskellige dato for en enkelt fest.
Avatar billede andersschou Novice
29. februar 2012 - 12:54 #2
nej kun de 2 fester :-) eller 2 festtyper i virkeligheden ;-)
Avatar billede andersschou Novice
29. februar 2012 - 13:10 #3
kan se jeg jo nok er nødt til at skrive lidt mere.

nej det der er ikke tale om flere fester... men 2 festtyper :-)

jeg får dataen leveret som vist... og skal have den sorteret op på fest 1 og 2 således at jeg kan bruge medarbejdernr som nøgle... lige nu optræder hver medarbejdernr jo 2 gange.


mvh

anders
29. februar 2012 - 18:05 #4
Hvis der kun er to festtyper og hver medarbejder kun deltaer en gang i hver festtype, så kan du få dit ønskede resultat som følger.  For at teste mit forslag lavede jeg en tabel andersschou med indhold som jeg viser nedenfor. 

SELECT a1.medarbejdernr,
(SELECT a2.dato FROM andersschou a2 WHERE a2.fest = 'fest1' AND a2.medarbejdernr = a1.medarbejdernr) AS fest1,
(SELECT a3.dato FROM andersschou a3 WHERE a3.fest = 'fest2' AND a3.medarbejdernr = a1.medarbejdernr) AS fest2
FROM andersschou a1;

Her er min testtabel:

CREATE TABLE andersschou (medarbejdernr INT, fest VARCHAR(10), dato DATE);

INSERT INTO andersschou VALUES(1, 'fest1', '2012-02-01');
INSERT INTO andersschou VALUES(1, 'fest2', '2012-02-02');
INSERT INTO andersschou VALUES(4, 'fest1', '2012-02-03');
INSERT INTO andersschou VALUES(5, 'fest1', '2012-02-04');
INSERT INTO andersschou VALUES(2, 'fest2', '2012-02-05');
INSERT INTO andersschou VALUES(2, 'fest1', '2012-02-06');
INSERT INTO andersschou VALUES(6, 'fest2', '2012-02-07');
INSERT INTO andersschou VALUES(3, 'fest1', '2012-02-09');
INSERT INTO andersschou VALUES(3, 'fest2', '2012-02-10');
Avatar billede andersschou Novice
02. marts 2012 - 09:56 #5
kanon og det virker jo så læg meget et svar :-)
02. marts 2012 - 11:43 #6
Svar fra mig.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester