Forum » Programiranje » [SQL] - nested select, prenos vrednosti
[SQL] - nested select, prenos vrednosti
'FireSTORM' ::
Hi,
imam en select statement v katerem je en nested select statement in bi moral temu nestet select stavku podati eno vrednost ki se je pravkar prebrala v prvem select stavku, zaradi count, ali če se morda da kako rešiti na drugačen način.
Torej, imam en view, v katerem so:
id_osebe ime priimek id_parnterja produkt
Sedaj pa moram iz tega viewa potegnit ven koliko različnih partnerjev ima vsaka oseba. Recimo imam podatke:
1 janez novak 50 produkt1
1 janez novak 50 produkt2
1 janez novak 50 produkt3
1 janez novak 51 produkt1
2 marija novak 50 produkt1
2 marija novak 52 produkt4
Probal sem zdajle tako:
select id_osebe,ime,priimek,
(select count(id_partnerja) from tabela where id_partnerja = 50) as st_partnerjev_50
from tabela group by id_osebe,ime,priimek order by id_osebe
Kar mi pa da naslednji izpis:
1 janez novak 4
2 marija novak 4
Kar je napačno in bi rabil takle izpis:
1 janez novak 3
1 marija novak 1
Če vzamem ta nested select stavek in ga zaženem ročno in mu dodam še group by id_osebe je sicer izpis pravilen, ampak ko tak stavek dam nazaj v "nest", potem javi napako ker nested select vrača več kot eno vrstico.
Tudi če v nested select dodam zraven še where id_osebe=1 je izpis za prvo osebo pravilen, če dam id_osebe=2 je za drugo osebo izpis pravilen itd., kar je vse lepo in prav, bi lahko šel po vrsti, vendar rabim to avtomatizirano, zato bi rad prenesel id_osebe ki se trenutno obdeluje v prvem selectu prenešen v ta nested select.
MSSQL, nevem kera verzija.
imam en select statement v katerem je en nested select statement in bi moral temu nestet select stavku podati eno vrednost ki se je pravkar prebrala v prvem select stavku, zaradi count, ali če se morda da kako rešiti na drugačen način.
Torej, imam en view, v katerem so:
id_osebe ime priimek id_parnterja produkt
Sedaj pa moram iz tega viewa potegnit ven koliko različnih partnerjev ima vsaka oseba. Recimo imam podatke:
1 janez novak 50 produkt1
1 janez novak 50 produkt2
1 janez novak 50 produkt3
1 janez novak 51 produkt1
2 marija novak 50 produkt1
2 marija novak 52 produkt4
Probal sem zdajle tako:
select id_osebe,ime,priimek,
(select count(id_partnerja) from tabela where id_partnerja = 50) as st_partnerjev_50
from tabela group by id_osebe,ime,priimek order by id_osebe
Kar mi pa da naslednji izpis:
1 janez novak 4
2 marija novak 4
Kar je napačno in bi rabil takle izpis:
1 janez novak 3
1 marija novak 1
Če vzamem ta nested select stavek in ga zaženem ročno in mu dodam še group by id_osebe je sicer izpis pravilen, ampak ko tak stavek dam nazaj v "nest", potem javi napako ker nested select vrača več kot eno vrstico.
Tudi če v nested select dodam zraven še where id_osebe=1 je izpis za prvo osebo pravilen, če dam id_osebe=2 je za drugo osebo izpis pravilen itd., kar je vse lepo in prav, bi lahko šel po vrsti, vendar rabim to avtomatizirano, zato bi rad prenesel id_osebe ki se trenutno obdeluje v prvem selectu prenešen v ta nested select.
MSSQL, nevem kera verzija.
Those penguins.... They sure aint normal....
- spremenil: 'FireSTORM' ()
'FireSTORM' ::
Rešil.
sum(case when id_partnerja=50 then 1 else 0 end) as id_partnerja
sum(case when id_partnerja=50 then 1 else 0 end) as id_partnerja
Those penguins.... They sure aint normal....
ta-mau ::
zna bit da bi tudi neki takšnega delovalo...
select id_osebe,ime,priimek, count(distinct(id_project)) as st_projektov
from tabela
where id_partnerja=50
group by id_osebe,ime,priimek
select id_osebe,ime,priimek, count(distinct(id_project)) as st_projektov
from tabela
where id_partnerja=50
group by id_osebe,ime,priimek
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | mySQL izpis many-to-many to matrixOddelek: Izdelava spletišč | 891 (652) | klemenSLO |
» | SQL Parent key not foundOddelek: Programiranje | 1064 (987) | Ciklamen |
» | SQL poizvedba z DISTINCTOddelek: Programiranje | 1912 (1753) | zdravc |
» | SQL vprašanjeOddelek: Izdelava spletišč | 2667 (2230) | jerneju |
» | Sortiranje podatkov v PHPjuOddelek: Programiranje | 1189 (1039) | poweroff |