Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  lihtne SQL päring... märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
-vodafone-
HV Guru
-vodafone-

liitunud: 26.04.2005



Autoriseeritud ID-kaardiga

sõnum 13.12.2011 00:23:31 lihtne SQL päring... vasta tsitaadiga

Pole SQL´ga üldse sinapeal, ning töökohustuste tõttu pole ka jõudnud iseseisvalt järgi vedada ennast. Nimelt siis oleks vaja koolis õpitu järgi teha üks SQL päring. Andmebaas? on olemas , vaja tabelitest õiged valued vist määrata ja päring kokku panna.
Äkki keegi oskab juhiseid anda või väikse õpetusega (et aru saaks kuidastoimib) siia teada anda.
Nimelt oleks siis vaja sql päringu abil väljastada tabeli kujul "Linn ja Linna kaupluste müüjate arv"
Olemas on tabelid:

Kauplused , kus on KauplusID; Kaupluse nimi, LinnID
Linnad, kus on LinnID; Linna nimi
Myyjad, kus MyyjaID ;müüja nimi, LinnID, Kuaplus ID

Näiteks siis , et Linna Tallinn ID on 1 Linna Viljandi ID on 2 jne
Kommentaarid: 244 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 216
tagasi üles
vaata kasutaja infot saada privaatsõnum
Timukas0
HV kasutaja
Timukas0

liitunud: 20.03.2007




sõnum 13.12.2011 01:32:59 vasta tsitaadiga

Kas sul LinnID tabelis Myyjad üleliigne ei ole? Selle andmebaasi puhul kuulub eeldatavasti iga müüja ühte kauplusesse ja üks kaupluss ühte linna, seega saab müüja linna kaupluse tabelist kätte.
Igatahes tuleks käituda umbes nii:
Kõigepealt JOINida mitu tabelit (-- järel on kommentaarid):
sql:
  1. SELECT *
  2. FROM Linnad l -- l on sünonüüm tabelile Linnad, et ei peaks 'Linnad' kogu aeg kirjutama
  3.   LEFT JOIN Kauplused k ON k.LinnID = l.LinnID -- k samuti sünonüüm, LEFT JOIN valib vasakust tabelist (Linnad) kõik read ja seob iga ühega kõik kauplused
  4.   LEFT JOIN Myyjad m ON m.KaupluseID = k.KaupluseID;

Tulemuseks suur tabel kõikide linnade, vastavate kaupluste ja müüjatega.
Järgmiseks GROUP BY abil saad kõik andmed konkreetse veeru järgi grupeerida:
sql:
  1. SELECT *
  2. FROM Linnad l
  3.   LEFT JOIN Kauplused k ON k.LinnID = l.LinnID
  4.   LEFT JOIN Myyjad m ON m.KaupluseID = k.KaupluseID
  5. GROUP BY l.LinnID;

Nüüd saad iga linna kohta ühe rea, kus järel on üsna suvaliselt valitud üks kauplus ja üks müüja (või NULL nende puudumisel).
Viimane samm on müüjad kokku lugeda. Selleks on COUNT() funktsioon, mis tahab argumendiks veeru nime (või * kõikide veergude lugemiseks). Kokku tuleb:
sql:
  1. SELECT l.LinnaNimi, COUNT(m.MyyjaID) -- valime ainult linna nimi ja müüjate arvu igas linnas
  2. FROM Linnad l
  3.   LEFT JOIN Kauplused k ON k.LinnID = l.LinnID
  4.   LEFT JOIN Myyjad m ON m.KaupluseID = k.KaupluseID
  5. GROUP BY l.LinnID;
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  lihtne SQL päring...
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.