
MS SQL - riadky s medzisuctom a celkovym suctom preskocit v cislovani
V selecte mam vybrane stlpce, spravene medzisucty a sucty pomocou grouping set. Vsetko ok, ale . . . ale potrebujem ocislovat riadky, to by nebol problem, ale zase ale . . . ale maju sa ocislovat len riadky z tabulky, nie riadky v ktorych je medzisucet. ked pouzijem row_number, ocisluje mi vsetky. Ta sa vobec dosiahnut to, aby riadky s medzisuctom a celkovym suctom preskocil v cislovani? A musi to byt v jenom selecte, nemoze to byt napr nejaka funkcia ci trigger ci co, nemam to ako ulozit.
Změna hloupého předmětu, původně: MSSQL (host)
Ještě mě napadl další Workarround. V teto tabulce nemam ID, ale pouzil jsem subselect, ve kterem pomoci Row_Number() ocisluju radky a na ten subselect teprve pouziju groupovani. Tohle je fyzicky jen jeden select a mel by jit spustit i v tom tvem prostredi.
Tak dostal som sa k tomu, konecne, velke diky za snahu, ale nieje to dobre. Priklad ide ok, ale ako nahle vlozim napr insert into @tTemp (Nazev, Skupina, Pocet) values
('Jedna', 1, 10),
('Dva', 4, 15),
('Tri', 4, 5),
('Ctyri', 2, 12) tak sa to cele rozsype, pretoze v priklade ti ide zaradom skupina 1,2 . . . riadky sa mi ocisluju, ale potom vysledok mam napr id null, null, 1,2,5, null, 3,4,7, nul..... namiesto napr. 1,2,3 null, 4 5 6....
cislovat id musi az vysledok
myslim ze toto uz prekroci susedsku mieru vypomoci, aj tak dik.
aj ked nie vybavene, tak dame vybavene, musim to obabrat inac . . .
DIK
Skús:
declare @tTemp table (Skupina int, Nazev char(10), Pocet int)
insert into @tTemp (Nazev, Skupina, Pocet) values
('Jedna', 1, 10),
('Dva', 4, 15),
('Tri', 4, 5),
('Ctyri', 2, 12)
SELECT ID, Skupina, Pocet = Sum(Pocet)
FROM (select ID = ROW_NUMBER() OVER (ORDER BY Skupina, Pocet), * from @tTemp) a
GROUP BY
GROUPING SETS (
(Skupina, ID),
(Skupina),
() )
ORDER BY
Skupina, 1;
neskutocne diky, test funguje, idem to skusit aplikovat na moje data . . . DIK
)
(ale sucty byvaju na konci
To som nemyslel ze to prerobis, stacilo na konci vyhodit order by . . . .
uz som to "narouboval" na moje stlpce, to by som neveril ze je take nieco mozne . . .
Chlapi, mate moj obdiv
D I K