Forum » Programiranje » [t-sql] SELECT TOP
[t-sql] SELECT TOP

nurmaln ::
Živjo
problemčič:
v tabeli imam
ARTIKEL | OPIS
---------------------
Artikel 1 - Opis A
Artikel 1 - Opis B
Artikel 1 - Opis C
Artikel 1 - Opis D
Artikel 1 - Opis E
Artikel 1 - Opis F
Artikel 2 - Opis A
Artikel 2 - Opis B
Artikel 2 - Opis C
Artikel 2 - Opis D
Artikel 2 - Opis E
Artikel 2 - Opis F
Kako bi napisal SELECT ki bi mi vrnil za vsak artikel prve tri vrstice opisa?
Če želim za vsak artikel posebej ni problema, pač napišem SELECT TOP 3 Opis FROM....
Kako zavraga naj dobim za VSE artikle izpisane prve tri vrstice opisov???
help plz
problemčič:
v tabeli imam
ARTIKEL | OPIS
---------------------
Artikel 1 - Opis A
Artikel 1 - Opis B
Artikel 1 - Opis C
Artikel 1 - Opis D
Artikel 1 - Opis E
Artikel 1 - Opis F
Artikel 2 - Opis A
Artikel 2 - Opis B
Artikel 2 - Opis C
Artikel 2 - Opis D
Artikel 2 - Opis E
Artikel 2 - Opis F
Kako bi napisal SELECT ki bi mi vrnil za vsak artikel prve tri vrstice opisa?
Če želim za vsak artikel posebej ni problema, pač napišem SELECT TOP 3 Opis FROM....
Kako zavraga naj dobim za VSE artikle izpisane prve tri vrstice opisov???
help plz
- spremenilo: snow ()

borchi ::
na hitro se spomnem samo tegale načina, verjetno pa obstaja veliko bolj eleganten...
select artikel, opis
from (
select t1.*, count(*) as cnt
from tabela t1
inner join tabela t2 on t1.artikel = t2.artikel
where t1.opis >= t2.opis
group by t1.artikel, t1.opis
) tab
where cnt < 4
order by artikel, opis
select artikel, opis
from (
select t1.*, count(*) as cnt
from tabela t1
inner join tabela t2 on t1.artikel = t2.artikel
where t1.opis >= t2.opis
group by t1.artikel, t1.opis
) tab
where cnt < 4
order by artikel, opis
l'jga

nurmaln ::
a se greva SQL za Telebane pa mi prosim razloži kaj za vraga naredi tale vrstica
where t1.opis >= t2.opis
where t1.opis >= t2.opis

borchi ::
ta del v navezi s count naredi to, da dejansko dobiš zaporedne številke recordov v tabeli in ker je potem še group by artikel in opis dobiš ločeno "številčenje" za posamen artikel v tem subselectu.
bi pa lahko prišlo do problemov (da bi ti vrnil več kot samo 3 recorde za posamen artikel), če artikel-opis ključ ni unique.
bi pa lahko prišlo do problemov (da bi ti vrnil več kot samo 3 recorde za posamen artikel), če artikel-opis ključ ni unique.
l'jga
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [SQL] Pohitritev izpisaOddelek: Programiranje | 3067 (1966) | kuall |
» | pc daljinecOddelek: Elektrotehnika in elektronika | 2068 (1909) | RobbyRS |
» | [SQL] poizvedba problem - obrtnik in njegov najdrazji artikelOddelek: Programiranje | 2006 (1840) | imagodei |
» | T-SQL FIRST / TOP / MAX...Oddelek: Programiranje | 1537 (1537) | frudi |
» | [delphi] 2 bazi v eni mrežiOddelek: Programiranje | 1177 (1126) | seawolf |