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.
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');