Vinnaren i pepparkakshustävlingen!
2015-05-18, 17:13
  #1
Medlem
Mina tabeller ser ut så här:

Pjäs
Namn
Bes
Säsong
Genre

Föreställning
Salongid
Tid
Datum
Pjäsid

Salong
SalongID
Antalplatser

Biljett
Stolnr
Pris
Radnr
MedlemsID
föreställningsID


Medlem
MedlemsID
Fnamn
Enamn
Ort
Postnr
Mobil
Kön

Den frågan jag försöker skapa är:

Vilken säsong och vilket år är populärast hos våra medlemmar och vilka
pjäser spelades under den säsongen?

Det svåra med att skapa frågan är "populärast", kan inte använda mig av avg, max då värden på säsong är ex Sommar, vår, Vinter och inte i INT.

select max(säsong) from pjäs
where pjäs.Säsong in
(Select Count(pjäs.säsong)
FROM medlem, biljett, föreställning, pjäs
WHERE medlem.medlemsID = biljett.medlemsID
AND föreställning.föreställningsID = biljett.föreställningsID
AND pjäs.pjäsID = föreställning.pjäsid
group by Säsong)

Det blir error när jag för såhär, vet någon hur man gör? Tacksam för svar.
Citera
2015-05-19, 08:40
  #2
Medlem
Bongomans avatar
Du kan börja med att rensa ur svenska tecken ur dina tabellnamn. Det är ett stort no-no. Sedan får du nog ta dig samman och ge oss felmeddelandet. Ingen här kommer att orka sätta upp din databasstruktur, gissa kolumnernas typ och sedan provköra din fråga.
Citera
2015-05-19, 16:22
  #3
Medlem
Citat:
Ursprungligen postat av gbgrape123
Mina tabeller ser ut så här:

Pjäs
Namn
Bes
Säsong
Genre

Föreställning
Salongid
Tid
Datum
Pjäsid

Salong
SalongID
Antalplatser

Biljett
Stolnr
Pris
Radnr
MedlemsID
föreställningsID


Medlem
MedlemsID
Fnamn
Enamn
Ort
Postnr
Mobil
Kön

Den frågan jag försöker skapa är:

Vilken säsong och vilket år är populärast hos våra medlemmar och vilka
pjäser spelades under den säsongen?

Det svåra med att skapa frågan är "populärast", kan inte använda mig av avg, max då värden på säsong är ex Sommar, vår, Vinter och inte i INT.

select max(säsong) from pjäs
where pjäs.Säsong in
(Select Count(pjäs.säsong)
FROM medlem, biljett, föreställning, pjäs
WHERE medlem.medlemsID = biljett.medlemsID
AND föreställning.föreställningsID = biljett.föreställningsID
AND pjäs.pjäsID = föreställning.pjäsid
group by Säsong)

Det blir error när jag för såhär, vet någon hur man gör? Tacksam för svar.
MAX fungerar inte som du tror. Om du har en tabell med exempelvis personer och staller frågan:

Kod:
SELECT MAX(FirstName) FROM Person

Så kommer du att få det största värdet för kolumnen vilket kommer att bli den person med namn längst bak I alfabetet. Om du istället vill se vilket namn som är vanligast så gör du:

Kod:
SELECT TOP 1 FirstName, COUNT(*)
FROM Person
GROUP BY FirstName
ORDER BY 2 DESC

Använd informationen ovan så ska du nog kunna lösa din hemläxa utan problem.
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