Forum » Programiranje » MSSQL pomoč
MSSQL pomoč
cobrica ::
Torej imam naslednjo nalogo, ki mi je nikakor ne uspe rešiti in sicer.
Izpišite vsoto vseh prodaj tistih prodajalcev, ki so prodali več, kot je obseg največjega naročila v tabeli Narocilo.
Vsak selekt stavek sem posebej rešil, ker nevem kako bi uporabil WHERE stavek v katerem bi preveril največji obseg in izpisal le tistega, ki ima skupni obseg večji kot največji obseg v tabeli.
Z tem selekt stavkom seštejem vse obsege za vsakega prodajalca posebej.
SELECT KodaProdajalca, SUM(Obseg) AS SkupajProdano
FROM Narocilo GROUP BY KodaProdajalca
Z tem selekt stavkom pa izpišem največji obseg v tabeli.
SELECT MAX(Obseg) AS MaxObsegNarocila FROM Narocilo
Ma kdo idejo kako to združit? Gre se pa za nekakšna vnešena vprašanja.
Izpišite vsoto vseh prodaj tistih prodajalcev, ki so prodali več, kot je obseg največjega naročila v tabeli Narocilo.
Vsak selekt stavek sem posebej rešil, ker nevem kako bi uporabil WHERE stavek v katerem bi preveril največji obseg in izpisal le tistega, ki ima skupni obseg večji kot največji obseg v tabeli.
Z tem selekt stavkom seštejem vse obsege za vsakega prodajalca posebej.
SELECT KodaProdajalca, SUM(Obseg) AS SkupajProdano
FROM Narocilo GROUP BY KodaProdajalca
Z tem selekt stavkom pa izpišem največji obseg v tabeli.
SELECT MAX(Obseg) AS MaxObsegNarocila FROM Narocilo
Ma kdo idejo kako to združit? Gre se pa za nekakšna vnešena vprašanja.
detroit ::
najlažje s common table expressionom če sm prav razumel
Google
Building recursive Queries with CTE oz samo Common table expression
Building recursive Queries with CTE oz samo Common table expression
Skero
detroit ::
WITH SUM_NAROČILO (
AS (SELECT MAX(Obseg) AS MaxObsegNarocila FROM Narocilo)
SELECT KodaProdajalca, SUM(Obseg) AS SkupajProdano
FROM Narocilo
WHERE SKupajProdano > SUM_NAROČILO.SUM
GROUP BY KodaProdajalca
da ti mal pomagam za začetek (vsekakor tole dvomim da dlea out of the box hehe)
Mislim pa da se da še lažje ampak idej ni zdele
AS (SELECT MAX(Obseg) AS MaxObsegNarocila FROM Narocilo)
SELECT KodaProdajalca, SUM(Obseg) AS SkupajProdano
FROM Narocilo
WHERE SKupajProdano > SUM_NAROČILO.SUM
GROUP BY KodaProdajalca
da ti mal pomagam za začetek (vsekakor tole dvomim da dlea out of the box hehe)
Mislim pa da se da še lažje ampak idej ni zdele
Skero
Ykz88 ::
kaj pa z "HAVING" kaj v smislu
SELECT KodaProdajalca, SUM(Obseg) AS SkupajProdano
FROM Narocilo
GROUP BY KodaProdajalca
HAVING Sum(obseg)>(select MAX(Obseg) AS MaxObsegNarocila FROM Narocilo )
SELECT KodaProdajalca, SUM(Obseg) AS SkupajProdano
FROM Narocilo
GROUP BY KodaProdajalca
HAVING Sum(obseg)>(select MAX(Obseg) AS MaxObsegNarocila FROM Narocilo )
cobrica ::
Še malce pomoči bi prosil in sicer naloga je sledeča.
Izpišite vsa imena in range vseh kupcev, ki so izvršili naročila nad povprečjem vseh naročil.
ImeKupca,Rang se nahajajo v tabeli Kupec
Obseg se pa nahaja v tabeli Narocilo.
Najprej sem zdruzil dve tabeli:
SELECT DISTINCT ImeKupca,Rang FROM Kupec k JOIN Narocilo n ON k.KodaKupca = n.KodaKupca
Potem sem pa naredil sledeče. Seštel sem vse nakupe vsakega kupca posebaj in z boolean operacijo prečekiral,kateri ima nad povprečjem vse naročil ter ispisal:
SELECT SUM(Obseg) AS SkupajNaroceno FROM Narocilo GROUP BY KodaKupca HAVING Sum(Obseg) > (SELECT AVG(Obseg) FROM Narocilo)
Problem se pojavi kako sedaj ta dva selekt stavka zdruzit, namreč izpisati mi more še ImeKupca in Rang vendar iz druge tabele.. Sem drugače poiskusil z join ampak mi nikakor ne rata!
Reseno.
Izpišite vsa imena in range vseh kupcev, ki so izvršili naročila nad povprečjem vseh naročil.
ImeKupca,Rang se nahajajo v tabeli Kupec
Obseg se pa nahaja v tabeli Narocilo.
Najprej sem zdruzil dve tabeli:
SELECT DISTINCT ImeKupca,Rang FROM Kupec k JOIN Narocilo n ON k.KodaKupca = n.KodaKupca
Potem sem pa naredil sledeče. Seštel sem vse nakupe vsakega kupca posebaj in z boolean operacijo prečekiral,kateri ima nad povprečjem vse naročil ter ispisal:
SELECT SUM(Obseg) AS SkupajNaroceno FROM Narocilo GROUP BY KodaKupca HAVING Sum(Obseg) > (SELECT AVG(Obseg) FROM Narocilo)
Problem se pojavi kako sedaj ta dva selekt stavka zdruzit, namreč izpisati mi more še ImeKupca in Rang vendar iz druge tabele.. Sem drugače poiskusil z join ampak mi nikakor ne rata!
Reseno.
Zgodovina sprememb…
- spremenil: cobrica ()
Ykz88 ::
Če predpostavimo da je tvoj drugi select stavek ustrezen, potem je en način združevanja vgnezdenje select stavkov torej nekaj v tem smislu
select distinct ImeKupca, Rang
from Kupec
where KodaKupca in (select KodaKupca from narocilo group by KodaKupca having sum(obseg) > (select avg(obseg) from narocilo)
select distinct ImeKupca, Rang
from Kupec
where KodaKupca in (select KodaKupca from narocilo group by KodaKupca having sum(obseg) > (select avg(obseg) from narocilo)
cobrica ::
Pozdravljeni, še eno vprašanje imam in sicer gre se glede povezovanje tabele same s seboj. Nikjer nisem našel kakšnega primera, tako da niti nevem kak se naj lotim zadeve. Vprašanje je:
24. Izpišite vse pare prodajalcev, ki živijo v istem mestu (npr. Sisek = Palek). Izpis naj izloči kombinacije prodajalcev samih s seboj (npr. Kres = Kres) in obratne izpise prodajalcev (npr. Palek = Sisek).
Torej če zastopim prav z select stavkom izpišem Prodajalce ampak kako izpišem samo pare, ki so iz istega kraja?
24. Izpišite vse pare prodajalcev, ki živijo v istem mestu (npr. Sisek = Palek). Izpis naj izloči kombinacije prodajalcev samih s seboj (npr. Kres = Kres) in obratne izpise prodajalcev (npr. Palek = Sisek).
Torej če zastopim prav z select stavkom izpišem Prodajalce ampak kako izpišem samo pare, ki so iz istega kraja?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PostgreSQL pomočOddelek: Programiranje | 2500 (1993) | Mato989 |
» | [Sql] PoizvedbaOddelek: Programiranje | 1809 (1460) | ales85 |
» | [SQL] InsertOddelek: Programiranje | 2068 (1670) | greentech |
» | SQL poizvedba z DISTINCTOddelek: Programiranje | 1902 (1743) | zdravc |
» | problem kje v strežniku ali v SQL-u ali PHP kodi?Oddelek: Izdelava spletišč | 1132 (989) | Yohan del Sud |