AddeladdeMedlem sedan jan. 20012 997 inlägg
Hej
Har en uppgift på KTH där jag ska få fram ett resultat från en databas. Jag har löst frågan och skickat in den men jag tyckte inte att det var någon snygg lösning eftersom jag själv fick räkna dem i en lista. Var dock inget krav på att lämna in sql-satsen.
Här är frågan:
Finns det någon vara som levereras av två eller fler olika företag?
Databasdiagram är:
Namn Schema
försäljning (avd, varunr, volym)
lager (avd, varunr, företag, volym)
leverantör (företag, adress)
vara (varunr, typ)
Man kan testa att skriva frågor mot databasen på denna adress:
http://dupond.nada.kth.se:8080/webbvaruhuset/
Det är en mySQL databas.
Min fråga ser ut så här men den behöver göras så att enbart företag som säljer två produkter visas.
Select v.typ, l.företag from vara v join lager l on v.varunr = l.varunr
group by v.typ, l.företag
order by v.typ
Försökt i nästan en timma med detta men inte lyckats. Inte så stor koll på just mySQL och många saker jag testat fungerar inte i databasen.
Gissar på att man ska använda någon form av having count(*) > 2 men det verkar inte fungera när man har group by.
om man gör en sub select och sätter den as namn
Så kan man inte i Where satsen använda namn > 2 heller...
Hur fixar jag detta?
LarsGMedlem sedan dec. 200012 465 inlägg
Select typ
from vara
where varunr in
(select varunr
from lager
group by varunr
having count(distinct företag) > 1)
AddeladdeMedlem sedan jan. 20012 997 inlägg
Fast det ger inte rätt resultat.
Om jag kör den så får jag bara tre produkter. Det finns betydligt fler produkter som flera företag levererar.
emissionMedlem sedan dec. 19996 095 inlägg
Addeladde skrev:
Fast det ger inte rätt resultat.
Om jag kör den så får jag bara tre produkter. Det finns betydligt fler produkter som flera företag levererar.
LarsGs variant är rätt, så jag vill nog hävda att det inte alls finns fler dylika produkter. Eller, kan du ge ett exempel?
AddeladdeMedlem sedan jan. 20012 997 inlägg
Om ni kör min fråga så ser ni att det finns fler produkter som samma företag levererar.
Exempel:
bestick, blomfat, blomkruka, blomma, bok, bröd, byxor, chips, filmjölk, frukt, grönsaker, herrsko, hundmat, hushållspapper, jordnötter, läskedryck, möbelpolish, mössa, penna, ryggsäck, stol, strumpor, tallrik, toalettpapper, tofflor, tvättmedel, underkjol, ögonskugga, öl
emissionMedlem sedan dec. 19996 095 inlägg
Det finns fler varutyper, men inte fler varor.
select vara.typ
from lager,vara
where lager.varunr=vara.varunr
group by vara.typ
having count(distinct företag) > 1
AddeladdeMedlem sedan jan. 20012 997 inlägg