Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Pomoc przy skomplikowanej
LukenZi
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.07.2010

Ostrzeżenie: (0%)
-----


Witam,

Mam 3 tabele, w ktorycj istotne pola to

t1- zawody:
zawod_id(PK), zawod_nazwa

t2 - ogloszenia:
ogloszenie_id (PK), zawod_id(FK)

t3 - ogloszenia_szczegoly
ogloszenie_id(FK), ilosc_wyswietlen

teraz chcialbym wybrac z tych trzech tabel, w kolejnosci dla danego zawodu, ktorego oferty wyswietlane sa najczesciej, jednak nie moge sobie poradzic z tym. Utworzylem cos takiego:
  1. SELECT zawod_id
  2. FROM zawod
  3. WHERE (
  4. SELECT sum(ogloszenia_szczegoly.ilosc_wyswietlen)
  5. FROM ogloszenia_szczegoly,ogloszenia
  6. WHERE
  7. ( ogloszenia.zawod_id=zawod.zawod_id
  8. AND ogloszenia_szczegoly.ogloszenia_id = ogloszenia.ogloszenie_id
  9. )
  10. )




Wyswietla mi liste wszystkich zawodow, wiec wyglada ok, tylko nie potrafie wyciagnac tej sumy z subkwerendy co bym mogl sobie to posortowac czy wyciagnac istotne informacje
Prosze o pomoc,
Pozdrawiam
Go to the top of the page
+Quote Post
wiiir
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

Ostrzeżenie: (0%)
-----


  1. SELECT zawod_nazwa, sum(os.ilosc_wyswietlen)
  2. FROM zawody z, ogloszenia o, ogloszenia_szczegoly os
  3. WHERE z.zawod_id = o. zawod_id
  4. AND o.ogloszenie_id = os.ogloszenie_id
  5. ORDER BY sum(os.ilosc_wyswietlen),zawod_nazwa;
  6.  


Nie wiem czy zadziala bo juz 1 w nocy i slabo mysle (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
LukenZi
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.07.2010

Ostrzeżenie: (0%)
-----


No niestety nei dziala, ten sam efekt daje co moje poprzednie czyli sumuje wszystkie wyswietlenia i przypisuje do jednego zawodu
Go to the top of the page
+Quote Post
wiiir
post
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

Ostrzeżenie: (0%)
-----


dodaj jeszcze group by
  1. SELECT zawod_nazwa, sum(os.ilosc_wyswietlen)
  2. FROM zawody z, ogloszenia o, ogloszenia_szczegoly os
  3. WHERE z.zawod_id = o. zawod_id
  4. AND o.ogloszenie_id = os.ogloszenie_id
  5. GROUP BY zawod_nazwa, sum(os.ilosc_wyswietlen)
  6. ORDER BY sum(os.ilosc_wyswietlen),zawod_nazwa;
  7.  
  8.  


Ten post edytował wiiir 6.09.2010, 14:22:16
Go to the top of the page
+Quote Post
LukenZi
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.07.2010

Ostrzeżenie: (0%)
-----


Dzieki, dzieki lekko zmodyfikowalem i dziala dokladnie tak jak sobie wymarzylem.

Pozdrawiam (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 10:55