Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Malo select,malo update i malo insert a sve po group

[es] :: MS SQL :: Malo select,malo update i malo insert a sve po group

[ Pregleda: 3097 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

smartbay

Član broj: 116898
Poruke: 5
*.broadband.blic.net.



Profil

icon Malo select,malo update i malo insert a sve po group10.10.2006. u 23:34 - pre 213 meseci
Mala pomoc...

Imam tabelu knjige i u njoj polja

Sifra
Naslov
Grupa - moze da bude 1,2,3,4 ....
Pisac - imena pisaca a,b,c,d
Cijena
Prodaja

a) treba da napisem sql koji ce posloziti tabelu po Grupi1 i Piscu.
b) nakon toga da u polje prodaja upise u polje Prodaja prema sledecem primjeru ...

Upisuje 1
Grupa -vrijednost 1
Pisac a
Pisac b
Pisac c

Upisuje 2 (sledeci broj po redu)
Grupa - vrijednost 2
Pisac a
Pisac c
i sl.

c) svaki sledeci put kad ga pokrenem da zna naci zadnji broj Prodaje i nastaviti po gore navedenoj proceduri.

Znaci primarno grupise po Grupi pa tek onda prema Piscu.
Svi pisci koji imaju istu Grupu ce biti oznaceni sa istim brojem prodaje.
I ovaj momenat rasta broja prodaje je jako bitan.

Ako ko moze da pomogne jer je zapelo.

Pozdrav Hvala
 
Odgovor na temu

roberto555
Croatia

Član broj: 64744
Poruke: 451
194.126.213.*



Profil

icon Re: Malo select,malo update i malo insert a sve po group12.10.2006. u 11:05 - pre 213 meseci
--------------------------------------------------------------------
"a) treba da napisem sql koji ce posloziti tabelu po Grupi1 i Piscu."
-----------------------------------------------------------------------
select * from knjige order by grupa,pisac


----------------------------------------------------------------------------------
"b) nakon toga da u polje prodaja upise u polje Prodaja prema sledecem primjeru ...

Upisuje 1
Grupa -vrijednost 1
Pisac a
Pisac b
Pisac c

Upisuje 2 (sledeci broj po redu)
Grupa - vrijednost 2
Pisac a
Pisac c
i sl.
c) svaki sledeci put kad ga pokrenem da zna naci zadnji broj Prodaje i nastaviti po gore navedenoj proceduri.

Znaci primarno grupise po Grupi pa tek onda prema Piscu.
Svi pisci koji imaju istu Grupu ce biti oznaceni sa istim brojem prodaje.
I ovaj momenat rasta broja prodaje je jako bitan."
-----------------------------------------------------------------------------------------

ovdje nešto baš ne kužim, pretp.da si samo kao pr.naveo ovo upis u "Pisac" i da je jedno polje pisac, a drugo ne kužim, ovo da svi pisci koji imaju istu grupu da ce biti oznaceni istim brojem prodaje,,,
ako imaš recimo 10 pisaca koji imaju grupu 1,,,a vrijednost u pradaja ide +1 kod svakog upisa?onda je ista vrijednost u grupa i prodaja u suprotnom nemaju istu vrijed., ili prodaja nejde +1?
najbolje bi bilo da napravis stored proceduru za ovo, nečeš to sve u jednom upitu moći,tako nešto ako sam dobro skužio->
kod upisa znaci prodaja se treba upisati najveca koja postoji + 1 koliko sam skuzuio, to onda napravis
select max(prodaja) from knjige
a +1 select max(prodaja)+1 from knjige, inace ne znam kako bi drugačije našao zadnji broj prodaje ako oni neče ići po redu!!a dalje sve normalno upises,a takonades zadnji broj prodaje!


----Roberto----
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
62.108.108.*

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Malo select,malo update i malo insert a sve po group16.10.2006. u 10:50 - pre 213 meseci
Code:

UPDATE Knjige
  SET prodaja = (SELECT COUNT(*)
                   FROM Knjige AS k1
                        INNER JOIN
                        Knjige AS k2
                          ON    (k1.pisac = k2.pisac AND k1.grupa >= k2.grupa)
                             OR (k1.pisac > k2.pisac)
                  WHERE k1.pisac = Knjige.pisac
                    AND k1.grupa = Knjige.grupa)

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Malo select,malo update i malo insert a sve po group16.10.2006. u 20:43 - pre 213 meseci
Code:

UPDATE Knjige
   SET prodaja = (SELECT COUNT(*)
                    FROM (SELECT pisac, grupa
                            FROM Knjige
                           GROUP BY pisac, grupa
                         ) AS k1
                         INNER JOIN
                         (SELECT pisac, grupa
                            FROM Knjige
                           GROUP BY pisac, grupa
                         ) AS k2
                           ON    (k1.pisac = k2.pisac AND k1.grupa >= k2.grupa)
                              OR (k1.pisac > k2.pisac)
                   WHERE k1.pisac = Knjige.pisac
                     AND k1.grupa = Knjige.grupa)


Pojasni onaj zbir prodaja u tabeli Prodano. Primer?
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

smartbay

Član broj: 116898
Poruke: 5
*.broadband.blic.net.



Profil

icon Re: Malo select,malo update i malo insert a sve po group16.10.2006. u 23:16 - pre 213 meseci
Pojasnjenje zbira ....

tabela knjige ima i polja kolicina i iznos ....
u tabeli prodano u polje zbir treba da se upisuje ukupan zbir pojedinacnih iznosa iz tabele knjige
 
Odgovor na temu

smartbay

Član broj: 116898
Poruke: 5
*.broadband.blic.net.



Profil

icon Re: Malo select,malo update i malo insert a sve po group16.10.2006. u 23:38 - pre 213 meseci
chachka super si Odlicno radi script koji si poslao.

Samo treba da jos uradi sledece

a) Da popuni tabelu Prodano

pisac
grupa
prodaja
zbir

b) kad pokrecem ovaj skript da mi broj za svaku sledecu prodaju kupi iz tabele Prodaja ili Knjige i upisuje u to polje prodaja nisam siguran dali to sada radi ...
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Malo select,malo update i malo insert a sve po group17.10.2006. u 00:58 - pre 213 meseci
Javlja mi se: Atribut 'prodaja' je primarni kljuc tabele 'Prodano'. Cela umna gimnastika oko grupisanja po piscima i grupama i generisanja broja 'prodaja', sluzi da bi se odrzavao vestacki kljuc tabele 'Prodano'.

Javlja mi se: Cela poenta tabele 'Prodano' je da se prikaze izvestaj o ukupnoj prodaji po piscima i grupama (zanrovima knjiga?).

Netreba tebi ni tabela 'Prodano', ni atribut 'prodaja' u tabeli 'Knjige', jer su to sve stvari koje se mogu izvesti (izracunati) od drugih podataka.

Tebi treba pogled
Code:

CREATE VIEW Prodano (pisac, grupa, kolicina, iznos)
AS
SELECT pisac, grupa, SUM(kolicina), SUM(iznos)
  FROM Knjige 
 GROUP BY pisac, grupa

a njega upotrebljavas normalno sa
Code:

SELECT pisac, grupa, kolicina, iznos
  FROM Prodano
 ORDER BY pisac, grupa -- ili vec kako treba sortirati


Jos nesto za kraj: Podaci o prodaji (kolicina i iznos) ne pripadaju tabeli 'Knjige'. Iz tog razloga ti se u ovoj tabeli javlja redundansa, odnosno narusena je druga normalna forma.

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

[es] :: MS SQL :: Malo select,malo update i malo insert a sve po group

[ Pregleda: 3097 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.