Vinnaren i pepparkakshustävlingen!
2010-01-03, 19:54
  #1
Medlem
Hejsan!

Det är så att jag läser en Databaskurs och är mitt inne i ett "tentaplugg".

I kursen ingår det att vi skall utifrån tabeller kunna få ut information med hjälp av skriven SQL kod.

Jag antar att ett flertal personer är riktigt duktiga här och skulle kunna hjälpa mig

Här är tabellerna:

Företag(orgnr, namn, ort, kredit)
Del(dnr, dnamn, färg, vikt)
Projekt(pnr, pnamn, ort)
Leverans(orgnr, dnr, pnr, antal)

De understrukna attributen är primärnycklar.

Här är frågorna som skall besvaras:

Lista namnen på alla delar som levererats till projekt i Paris.
Visa företagets namn och kredit för alla företag som har en kredit mindre än medelvärdet av krediter.
Vilka delar (namnen) har levererats av mer än ett företag?


Mvh
Citera
2010-01-03, 20:55
  #2
Medlem
gadzooxs avatar
Men herregud, vad har du gjort på lektionerna egentligen? Och har du ens tittat runt här i databasforumet innan du postade?

Vad är din fråga? Har du lyckats få ihop några queries som ger fel resultat? Du får gärna visa oss något konkret så vi får något diskussionen kan utgå ifrån. Att däremot börja från noll är nog ingen här särskilt sugen på.
Citera
2010-01-03, 21:18
  #3
Moderator
Protons avatar
WTF?!?

Har du problem med frågor av den där karaktären redan nu lär en stilla bön till den stora tentaguden vara på sin plats senare.

Som sagt, posta dina egna förslag tiill SQL-er så kan vi ju kanske peka dej i rätt riktning om du är snett ute.

Du är inte blind gadzoox, jag ser inte heller nån fråga för den delen.
Citera
2010-01-03, 22:42
  #4
Medlem
Jaja ursäkta mig. Var nämligen så att jag satt och pillade tidigare i Microsoft Access och blev bara så less så postade här.

Här kommer mina SQL-satser jag försökt knåpat ihop.

Lista namnen på alla delar som levererats till projekt i Paris.

SELECT dnamn
FROM Del, Projekt, Leverans
WHERE Del.dnr = Leverans.dnr AND Projekt.pnr = Leverans.pnr Projekt.ort = 'Paris';

Visa företagets namn och kredit för alla företag som har en kredit mindre än medelvärdet av krediter.

SELECT namn, kredit
FROM Företag
HAVING kredit < AVG(kredit)

Vilka delar (namnen) har levererats av mer än ett företag?

Denna är jag lost på. Vet dock att jag måste använda mig utav nested-loops.
Citera
2010-01-04, 01:33
  #5
Moderator
Protons avatar
Kod:
SELECT dnamn
FROM Del, Projekt, Leverans
WHERE Del.dnr = Leverans.dnr AND Projekt.pnr = Leverans.pnr Projekt.ort = 'Paris';

Den första SQLen kommer inte att funka eftersom det saknas ett AND-villkor i sista wheresatsen där du anger namnet på staden.

Kod:
SELECT dnamn
FROM Del, Projekt, Leverans
WHERE Del.dnr = Leverans.dnr AND Projekt.pnr = Leverans.pnr AND Projekt.ort = 'Paris';
lär funka aningen bättre.

Den andra kommer inte heller att funka eftersom du läser ut två attribut, isf måste du ha med ett group by, annars kommer inte AVG att funka.
Kod:
SELECT namn, kredit
FROM Företag
HAVING kredit < AVG(kredit)
GROUP BY orgnr
Så nånting borde den se ut.

Begrepp som "nästlade loopar" kommer ge dej ett stort U i en tenta om databaser eftersom loopar inte förekommer som begrepp om man inte talar om stored procedures.

Det jag hoppas att du menar är att du måste JOINa ihop tabellerna "Leverans" och "del" för att kunna få reda på ett vist delnamn. En hint där är att du använder COUNT i tabellen Leverans.
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