DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > SQL baze podataka - Sponzor: Baze-Podataka.net
Beach Wedding Dresses - Looking for the Wedding Dress? Here, 1dress.co.uk stunning collection of beach wedding dresses is just what you are looking for.
charles wang

SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka

Odgovori
 
Alati teme Način prikaza
Staro 12. 02. 2007.   #1
andrej
profesionalac
Qualified
 
Avatar andrej
 
Datum učlanjenja: 05.06.2005
Lokacija: Beograd
Poruke: 131
Hvala: 2
7 "Hvala" u 4 poruka
andrej is on a distinguished road
Pošaljite poruku preko MSN za andrej
Default Po jedan red iz vezne tabele (umesto vise...blah)

Al sam srocio... nego, sta me muci:

Imam neki model podataka, gde postoji tabela Izvestaj, TipDogadjaja i IzvestajTipDogadjaja (za vise prema vise). Tip dogadjaja je sifarnik.

Ako jedan izvestaj ima vise dogadjaja, normalno, imam vise upisa u veznu tabelu, tipa:
izvestajID|tipdogadjajaID
1 |2
1 |4
1 |8
------------------------
Ono sto pokusavam jeste da prilikom pretrage po tipu dogadjaja, za vrednosti recimo 2 i 8 (na primer, to su Havarija i Poplava), ne dobijem dva reda za isti izvestaj, vec jedan, da bih ga tako i prikazao direktno.

Ja sam dosao do zakljucka da to ne mogu dobiti iz cistog sql-a (iako se nikako ne mogu pohvaliti znanjemistog), pa bih voleo da me demantujete.

Ako ne, na koji nacin to najefikasnije resavate kroz serverski kod?
andrej je offline   Odgovorite uz citat
Staro 12. 02. 2007.   #2
caiser
Miljan Karadzic
Certified
 
Avatar caiser
 
Datum učlanjenja: 06.01.2007
Lokacija: Frankfurt
Poruke: 76
Hvala: 9
3 "Hvala" u 3 poruka
caiser is on a distinguished road
Pošaljite ICQ poruku za caiser Pošaljite poruku preko MSN za caiser
Default

Ako sam te dobro razumeo, mozes recimo da koristis distinct funkciju.

SELECT DISTINCT(izvestajID) FROM tabela WHERE tipdogadjajaID IN (2, 8);

Poslednja izmena od caiser : 12. 02. 2007. u 20:38.
caiser je offline   Odgovorite uz citat
Staro 12. 02. 2007.   #3
zextra
Boris
Grand Master
 
Avatar zextra
 
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
151 "Hvala" u 2 poruka
zextra is on a distinguished roadzextra is on a distinguished road
Default

Ili tako, ili da grupises po nekom polju koje se ne menja (izvestajID npr)

SELECT ... FROM ... WHERE tipdogadjajaID IN (2, 8) GROUP BY izvestajID

ali bih i ja koristio caiserovo resenje.
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams
zextra je offline   Odgovorite uz citat
Staro 12. 02. 2007.   #4
andrej
profesionalac
Qualified
 
Avatar andrej
 
Datum učlanjenja: 05.06.2005
Lokacija: Beograd
Poruke: 131
Hvala: 2
7 "Hvala" u 4 poruka
andrej is on a distinguished road
Pošaljite poruku preko MSN za andrej
Default

Ok, probacu sutra to.
Mada sam malo skeptican, jer trebam da povucem inner join-om jos neke podatke iz drugih tabela.

| IzvestajID | Grad | Datum | Radnik(ko je pisao)|
andrej je offline   Odgovorite uz citat
Staro 14. 02. 2007.   #5
andrej
profesionalac
Qualified
 
Avatar andrej
 
Datum učlanjenja: 05.06.2005
Lokacija: Beograd
Poruke: 131
Hvala: 2
7 "Hvala" u 4 poruka
andrej is on a distinguished road
Pošaljite poruku preko MSN za andrej
Default

Super, ovo sa DISTINCT mi radi.

Evo kako sam sklepao ceo query:

Kôd:
SELECT DISTINCT (Izvestaj.IzvestajID) AS Izvestaj, 
REGION.NazivRegiona, Izvestaj.Datum, Izvestaj.IzvestajID, Sum(TipDogadjajaPoIzvestaju.Kolicina) AS BrojDogadjaja
FROM TipDogadjaja INNER JOIN 
(REGION INNER JOIN (Izvestaj INNER JOIN TipDogadjajaPoIzvestaju 
ON Izvestaj.IzvestajID = TipDogadjajaPoIzvestaju.IzvestajID) 
ON REGION.RegionId = Izvestaj.RegionID) 
ON TipDogadjaja.TipDogadjajaID = TipDogadjajaPoIzvestaju.TipDogadjajaID
WHERE ((TipDogadjajaPoIzvestaju.TipDogadjajaID) In (2,8))
GROUP BY REGION.NazivRegiona, Izvestaj.Datum, Izvestaj.IzvestajID;
TipDogadjajaPoIzvestaju je ustvari ona vezna tabela, koja pored dva foreign key-a ima i svoja dva polja.

Jos jedna stvar me interesuje. Naleteo sam na ovaj text gde tip objasnjava neku "tehniku" sa GROUP BY naredbom, i izgleda mi ok, samo ne kapiram bas kako bi kod mene to uglavio, a sve mi se cini da bi moglo ?

Hvala puno.

Poslednja izmena od andrej : 14. 02. 2007. u 21:36.
andrej je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Vise domena za jedan sajt sa aspekta SEO bokacbl Marketing i SEO 7 08. 02. 2011. 13:03
Undo umesto Are you sure? ivanhoe PHP 17 20. 08. 2009. 16:51
SEO pitanje: vise domena za jedan sajt Mikky Marketing i SEO 2 19. 08. 2009. 02:55
Umesto tag-a H, slika blogowski (X)HTML, JavaScript, DHTML, XML, CSS 13 11. 05. 2006. 13:59
Jedan sajt, na vise domena presretach Marketing i SEO 5 11. 01. 2006. 21:02


Vreme je GMT +2. Trenutno vreme je 01:10.


Blogodak - Domaci blogovi na jednom mestu Caught in a web - web dev blog
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.