Forum » Programiranje » problem poizvedbe access
problem poizvedbe access
Neykos ::
1. Ali v bazi obstajajo osebe z istim imenom in priimkom? Najdi
jih.
2. Kateri priimek je najbolj pogost v bazi?
V glavnem pri teh dveh nevem kakšen pogoj bi uporabil. Hvala za odgovore.
Lp
jih.
2. Kateri priimek je najbolj pogost v bazi?
V glavnem pri teh dveh nevem kakšen pogoj bi uporabil. Hvala za odgovore.
Lp
- spremenil: Neykos ()
keworkian ::
1. naredi count + group by ime, priimek
2. group by priimek + count
2. group by priimek + count
Obscenities in B-Flat
Neykos ::
imagodei ::
Če boš sliko prilimal tako, da se jo bo dalo pogledat, pol se mogoče lahko kaj zgovorimo...
- Hoc est qui sumus -
imagodei ::
1.)
Select count(SifraUdelezenca), Ime, Priimek
From tbl_Udeleženci
Group by Ime, Priimek
- To ti pošteje vse pojavitve posameznih imen in priimkov. Če sta v bazi 2 udeleženca z istim imenom in priimkom, bo to v stolpcu COUNT prikazano kot 2. Če je v bazi samo en udeleženec z nekim konkretnim imenom in priimkom, bo v stolpcu COUNT zapisana enka.
2. oz 4.)
Select count(SifraUdelezenca), Priimek
From tbl_Udeleženci
Group by Priimek
Order by count(SifraUdelezenca) DESC
- Podobna logika kot pri ena, samo da ti grupira samo po priimkih in prešteje pojavitve unikatnih priimkov. Order by ti izpiše tabelo tako, da prva vrstica vsebuje Priimek, ki se pojavi največkrat.
9.)
Select count(tbl_IzvedenTecaj.ZapStTecaja), tbl_VrsteIzobraževanj.Naziv_Tecaja
From tbl_IzvedenTecaj, tbl_VrsteIzobraževanj
Where tbl_IzvedenTecaj.SifraVrsteTecaja = tbl_VrsteIzobraževanj.SifraVrsteTecaja
Group by tbl_VrsteIzobraževanj.Naziv_Tecaja
Order by count(tbl_IzvedenTecaj.ZapStTecaja) DESC
- tukaj povežeš med sabo dve tabeli, zato da iz tbl_VrsteIzobraževanj dobiš dejansko ime tečaja, ne samo šifro. Jaz sem tukaj uporabil v ta namen kar WHERE stavek, ki nalogo čist OK opravi; drugače se to bolj efektivno reši z JOIN stavkom. Zadevo grupiraš po Nazivu tečaja, COUNT prešteje unikatne ponovitve tečajev. ORDER BY ... DESC spet izpiše v prvi vrstici rezultata tečaj z največ ponovitvami.
Mimogrede, imena tabel in polj so napisana brez vsakega reda. V imenih tabel imaš krilate znake (čšž), v imenih polj pa ne. Tudi polja nimajo enotnega načina zapisovanja imen: imaš polje SifraVrsteTecaja (brez presledkov), takoj nato pa v isti tabeli polje Naziv_Tecaja (s podvezajem). Takšna nedoslednost vodi v cel kup težav pri pisanju poizvedb in v izgubo časa pri iskanju težav. Mogoče se je tudi meni zapisala kakšna - če ti poizvedbe ne bodo delale iz prve, preveri najprej, če nisem kje falil kakšnega podvezaja.
Select count(SifraUdelezenca), Ime, Priimek
From tbl_Udeleženci
Group by Ime, Priimek
- To ti pošteje vse pojavitve posameznih imen in priimkov. Če sta v bazi 2 udeleženca z istim imenom in priimkom, bo to v stolpcu COUNT prikazano kot 2. Če je v bazi samo en udeleženec z nekim konkretnim imenom in priimkom, bo v stolpcu COUNT zapisana enka.
2. oz 4.)
Select count(SifraUdelezenca), Priimek
From tbl_Udeleženci
Group by Priimek
Order by count(SifraUdelezenca) DESC
- Podobna logika kot pri ena, samo da ti grupira samo po priimkih in prešteje pojavitve unikatnih priimkov. Order by ti izpiše tabelo tako, da prva vrstica vsebuje Priimek, ki se pojavi največkrat.
9.)
Select count(tbl_IzvedenTecaj.ZapStTecaja), tbl_VrsteIzobraževanj.Naziv_Tecaja
From tbl_IzvedenTecaj, tbl_VrsteIzobraževanj
Where tbl_IzvedenTecaj.SifraVrsteTecaja = tbl_VrsteIzobraževanj.SifraVrsteTecaja
Group by tbl_VrsteIzobraževanj.Naziv_Tecaja
Order by count(tbl_IzvedenTecaj.ZapStTecaja) DESC
- tukaj povežeš med sabo dve tabeli, zato da iz tbl_VrsteIzobraževanj dobiš dejansko ime tečaja, ne samo šifro. Jaz sem tukaj uporabil v ta namen kar WHERE stavek, ki nalogo čist OK opravi; drugače se to bolj efektivno reši z JOIN stavkom. Zadevo grupiraš po Nazivu tečaja, COUNT prešteje unikatne ponovitve tečajev. ORDER BY ... DESC spet izpiše v prvi vrstici rezultata tečaj z največ ponovitvami.
Mimogrede, imena tabel in polj so napisana brez vsakega reda. V imenih tabel imaš krilate znake (čšž), v imenih polj pa ne. Tudi polja nimajo enotnega načina zapisovanja imen: imaš polje SifraVrsteTecaja (brez presledkov), takoj nato pa v isti tabeli polje Naziv_Tecaja (s podvezajem). Takšna nedoslednost vodi v cel kup težav pri pisanju poizvedb in v izgubo časa pri iskanju težav. Mogoče se je tudi meni zapisala kakšna - če ti poizvedbe ne bodo delale iz prve, preveri najprej, če nisem kje falil kakšnega podvezaja.
- Hoc est qui sumus -
Neykos ::
Hvala ti za odgovore. Baza ni moje izdelave, ker jim je profesor izdelal jaz samo pomagam poizvedbe naret pa se je pri teh oz še nekaterih od 30ih zataknilo... Še enkrat hvala. Lp
Neykos ::
Dela hvala ti. Če bom še potreboval kakšno pomoč se bom še javil, ker oni morajo to delati v čarovniku za poizvedbe ne v SQL-u tako da sem moral zdaj vse spreminjati. Hvala še enkrat ;)
imagodei ::
V čarovniku za poizvedbe MORAJO delat? Oz. ne smejo v SQL načinu? Oh, well... Kot da SQL sam po sebi ni na moč razumljiv.
Anyway, glavno da sem pomagal. Boste že naprej. Če boš pa rabil še kaj, pa povej.
Anyway, glavno da sem pomagal. Boste že naprej. Če boš pa rabil še kaj, pa povej.
- Hoc est qui sumus -
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL - izpitOddelek: Programiranje | 2032 (1056) | FTad |
» | SQL poizvedbaOddelek: Programiranje | 3263 (2608) | awy |
» | MySQL pomocOddelek: Izdelava spletišč | 1839 (1095) | slosi |
» | [Access 2007]Oddelek: Programiranje | 2627 (2227) | urosz |
» | SQL vprašanjeOddelek: Izdelava spletišč | 2666 (2229) | jerneju |