Vinnaren i pepparkakshustävlingen!
2010-08-08, 02:03
  #1
Medlem
KINAMATs avatar
Krånglig rubrik kanske men för att göra det lite enklare...

Har en databas med data inmatad.
Har två frågor som SQL ska besvara.

Frågorna:

1. Vilken klubb har haft flest DJ:er på en natt? Visa namn, adress, antal dansgolv och datum då det var flest DJ:er!

2. Vilken DJ har jobbat i alla klubbar i en viss stad? Välj själva en stad! Visa namn, epost och webbadress!

Bild på det som behövs ur databasen, http://data.fuskbugg.se/skogsturken/databas.png

Koden som ger rätt resultat (fråga 1) men ändå är fel med motiveringen "Nej. Frågan gäller vilken klubb som haft flest dj:er på en natt. Varför räknar ni datum? Se också till att ni får med alla joinvillkor i joinar där det finns flera kolumner i FN."

Kod:
SELECT klubb.namnlokal.gAdressx.antal AS antalGolvtillfälle.datum
FROM tillfälle
klubblokal, [SELECT klubb.namn as klubbnamnklubb.klubbidCOUNT(dansgolv.namn) as antal
FROM dansgolv
klubb
WHERE dansgolv
.klubb klubb.klubbid
GROUP BY klubb
.namnklubb.klubbid
]. AS x
WHERE 
(((tillfälle.klubb)=[klubb].[klubbid]) AND ((klubb.lokal)=[lokal].[lokalid]) AND ((x.klubbnamn)=[klubb].[namn]) AND ((x.klubbid)=[klubb].[klubbid]))
GROUP BY klubb.namnlokal.gAdressx.antaltillfälle.datum
HAVING 
(((Count(tillfälle.datum))=(SELECT MAX(flestDatumFROM (
SELECT klubb.klubbidtillfälle.datum,COUNT(tillfälle.datum) as flestDatum
FROM klubb
bokningtillfälle
WHERE bokning
.tillfälle tillfälle.datum
AND tillfälle.klubb klubb.klubbid
AND bokning.dansgolv tillfälle.dansgolv

GROUP BY klubb
.klubbidtillfälle.datum)))); 

Koden som ger rätt resultat (fråga 2) men ändå är fel med motiveringen "Nej. Tänk på sammansatta PN/FN-par så att ni kopplar rätt."

Kod:
SELECT DISTINCT artistnamnepostwebplats
FROM DJ
bokning
WHERE bokning
.DJ DJ.epost
AND NOT EXISTS (

SELECT klubb.namn
FROM klubb
,lokal
WHERE stad 
'Västerås'
AND klubb.lokal lokal.lokalid

AND klubb.namn NOT IN (

SELECT klubb.namn
FROM tillfälle
,bokning,klubbdansgolv
WHERE bokning
.tillfälle tillfälle.datum
AND bokning.dansgolv tillfälle.dansgolv
AND bokning.klubb tillfälle.klubb
AND tillfälle.dansgolv dansgolv.namn
AND tillfälle.klubb dansgolv.klubb
AND dansgolv.klubb klubb.klubbID
AND DJ epost
)); 

Kan ni se vad som är fel, om det nu är fel och ge mig lite tips så jag kommer in på rätt spår? Jag får ju ut rätt resultat med koderna.
__________________
Senast redigerad av KINAMAT 2010-08-08 kl. 02:06.
Citera
2010-08-08, 14:02
  #2
Medlem
kh31d4rs avatar
felet med den första står ju i motiveringen.. du räknar datum istället för klubbar.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback