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

pomoc oko sql upita

[es] :: Baze podataka :: pomoc oko sql upita

[ Pregleda: 2404 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon pomoc oko sql upita20.05.2008. u 19:30 - pre 133 meseci
ovako:
dve tabele

tabela1:
id
grupa


tabela2:
id
id_tab1
texttab2
plata

kako da prikazem tabela1.grupa na osnovu poredanih plata u tabeli2
znaci treba da poredam plate u tabeli2 i da prikazem kojoj grupi pripadaju ali samo oni koji imaju najvecu platu u svojoj grupi
pr.
tabela1
1 administracija
2 radnici


tabela2
1 1 n. nenadovic 1299
2 1 n.nenadovic2 1499
3 2 p petrovic 1200
4 2 p petrovic2 1300
5 2 n nenadovic3 1800


rezultat treba da bude :
- radnici (jer n nenadovic3(1800) ima najvecu platu ukupno, a i od svojih u grupi pa je na prvom mestu)
- administracija (a to je n nenadovic2(1499))

znaci treba da dobijem predstavnike , tj naziv grupe kojoj pripadaju, koji imaju najvecu platu,a da u rezultatu opet budu poredani opadajuce

malo je konfuzno ali nadam se da ste razumeli
POZ


 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Moderator
Član broj: 53780
Poruke: 575
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: pomoc oko sql upita20.05.2008. u 22:06 - pre 133 meseci
Šta se dešava ako dva radnika u okviru iste grupa imaju istu maksiamlnu platu? Kojeg od njih dvojice prikazati kao predstavnika grupe?
"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

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon Re: pomoc oko sql upita20.05.2008. u 22:19 - pre 133 meseci
posto vidim da niko ne odgovora mozda bi bilo dobro da jos malo pojasnim ili pojednostavim...
ako neko ne moze da rijesi ovaj kompletan problem onda bar dio koji bi meni bio vrlo koristan
da li je moguce tj da li se moze uraditi na neki drugi nacin da

ORDER BY ide pre GROUP BY naravno sql ovako nesto ne dozvoljava

recimo, u mom slucaju, da se jedna kolona u tabeli prvo poreda bilo rastuci bilo opadajuci a tek onda grupise po nekom pravilu i nekoj drugoj koloni

npr.


id naziv grupa plata
1 ime1 grupa1 100
2 ime2 grupa2 123
3 ime3 grupa1 345
4 ime4 grupa1 124
5 ime5 grupa2 354
6 ime6 grupa1 152
7 ime7 grupa2 415

onda sortiranje:
(ORDER BY plata DESC)

7 ime7 grupa2 415
5 ime5 grupa2 354
3 ime3 grupa1 345
6 ime6 grupa1 152
4 ime4 grupa1 124
2 ime2 grupa2 123
1 ime1 grupa1 100

i onda da se izvedu najvece vrednosti od po svake grupe


konacni rezultat:
(GROUP BY grupa)

7 ime7 grupa2 415
3 ime3 grupa1 345

i tako bi to trebalo da radi da moze da se upetrebi ORDER BY pre GROUP BY
molim brz odgovor hitno je
il bar neki komentar rado cu upotpuniti pitanje ili objasniti

HVALA
 
Odgovor na temu

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon Re: pomoc oko sql upita20.05.2008. u 22:24 - pre 133 meseci
Citat:
chachka: Šta se dešava ako dva radnika u okviru iste grupa imaju istu maksiamlnu platu? Kojeg od njih dvojice prikazati kao predstavnika grupe?


ne treba predstavljati ni jednog od njih nego treba prikazati grupu...
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Moderator
Član broj: 53780
Poruke: 575
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: pomoc oko sql upita20.05.2008. u 22:31 - pre 133 meseci
Code:
SELECT t1.grupa, MAX(t2.plata)
  FROM tabela1 AS t1
       INNER JOIN
       tabela2 AS t2
         ON t1.id = t2.id_tab1
 GROUP BY t1.grupa
 ORDER BY MAX(t2.plata) DESC

"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

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon Re: pomoc oko sql upita20.05.2008. u 22:51 - pre 133 meseci
chachka:
hvala u velikim delom je obavilo moj zadatak...
e sad kad bi mogao da se koriguje kod samo da ne prikazuje MAX(t2.plata)
???
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Moderator
Član broj: 53780
Poruke: 575
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: pomoc oko sql upita20.05.2008. u 23:27 - pre 133 meseci
Code:
SELECT t1.grupa
  FROM tabela1 AS t1
       INNER JOIN
       tabela2 AS t2
         ON t1.id = t2.id_tab1
 GROUP BY t1.grupa
 ORDER BY MAX(t2.plata) DESC

"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

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon Re: pomoc oko sql upita21.05.2008. u 11:58 - pre 133 meseci
ovo sve ne radi na Microsoft SQL Server 2005...
zasto?
 
Odgovor na temu

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon Re: pomoc oko sql upita21.05.2008. u 12:07 - pre 133 meseci
a evo i greske na Microsoft SQL Server 2005
Column 'tabela1.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Moderator
Član broj: 53780
Poruke: 575
*.reverse.sattrakt.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: pomoc oko sql upita21.05.2008. u 13:00 - pre 133 meseci
A kako ti se sad u selekt listi pojavila kolona 'id' iz 'tabela1'? Ja tu kolonu nevidim u selekt listi upita kojeg sam postavio, tako da tu grešku nisi ni mogao da dobiješ prilikom njegovog izvršavanja.
"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

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon Re: pomoc oko sql upita21.05.2008. u 14:43 - pre 133 meseci
Citat:
chachka: A kako ti se sad u selekt listi pojavila kolona 'id' iz 'tabela1'? Ja tu kolonu nevidim u selekt listi upita kojeg sam postavio, tako da tu grešku nisi ni mogao da dobiješ prilikom njegovog izvršavanja.


t1.id! ja sam prepravio malo kod al samo ove aliase...(onaj kod koji si mi poslao radi na MySql al na SQLExpress NE!

evo sta meni treba:
Code:

SELECT item.id, item.title
FROM item INNER JOIN note ON item.id = note.item_id
WHERE note.id = (SELECT item_id
FROM note
GROUP BY item_id
ORDER BY MAX(date) DESC)


znaci tacno ovako
ovo je logicko resenje samo sto u praksi nije moguce jer select u WHERE vraca vise od jedne vrednosti
jer meni bas to i treba kad sredim jednu tabelu koja ima dosta podataka i GRUPISEM ih treba da dobijem title iz druge tabele koja je povezana po ID
iz koda se moze videti struktura tabela sasvim dovoljno je ovo za nekog ko zna
 
Odgovor na temu

Leruman
Srbija

Član broj: 141635
Poruke: 92
*.dynamic.sbb.rs.



+4 Profil

icon Re: pomoc oko sql upita21.05.2008. u 17:05 - pre 133 meseci
Mislim da tebi treba ovakav upit

Code:
SELECT dbo.tabela1.id, MAX(dbo.tabela2.plata) AS Plata, MAX(dbo.tabela2.radnk) AS Radnik, MAX(dbo.tabela1.grupa) AS Grupa
FROM         dbo.tabela1 INNER JOIN
                      dbo.tabela2 ON dbo.tabela1.id = dbo.tabela2.id_tabela1
GROUP BY dbo.tabela1.id
ORDER BY MAX(dbo.tabela2.plata) DESC


Proveri da li kod tebe radi, kod mene na sql 2000 radi ok.
 
Odgovor na temu

klokan1234

Član broj: 181969
Poruke: 27
89.216.119.*



Profil

icon Re: pomoc oko sql upita21.05.2008. u 17:10 - pre 133 meseci
evo resenja!

Code:

SELECT     item.id,convert(varchar(50),item.title) AS title
FROM         item INNER JOIN
                      note ON item.id = note.item_id
GROUP BY item.id,convert(varchar(50),item.title) 
ORDER BY MAX(note.date) DESC


nisam znao da kod MS SQL Express sve sto stoji uz SELECT mora da bude ili u agregatnoj funkciji ili u GROUPE BY i to je bio problem kao i convert()
al sada radi :)
POZ
 
Odgovor na temu

[es] :: Baze podataka :: pomoc oko sql upita

[ Pregleda: 2404 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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