Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] złożone zapytanie
agataperz
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


Witam,

mam problem z zbudowaniem złożonego zapytania
Czy możecie mi jakoś pomóc?

z tego co udało mi się skonstruować to:
  1. SELECT max( data_godz ) , sum( ilosc ) , STATUS , forma FROM ehi_spis_rozbicie INNER JOIN ehi_spis USING ( id ) INNER JOIN ehi_statusy USING ( id ) WHERE id = '193'


Niestety tabela pobiera mi status nie z max(data_godz) tylko pierwszy z brzegu z id=193

Jak to skojarzyć?
Go to the top of the page
+Quote Post
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Bo w zapytanie masz "WHERE id = '193'" więc pobiera z ID 193.


--------------------
Go to the top of the page
+Quote Post
agataperz
post
Post #3





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


tylko w tabeli ehi_statusy z tym id mam chyba z 5 pozycji a ja chce wyciagnac konkretny status z max(data_godz) + dodatkowe dane z pozostałych tabel gdzie id jest tylko 1 rekord

Ten post edytował agataperz 12.11.2011, 12:23:42
Go to the top of the page
+Quote Post
IceManSpy
post
Post #4





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


A to max(data_godz) nie powinno być w where, jeśli chcesz wyciągnąć max z data_godz ?


--------------------
Go to the top of the page
+Quote Post
agataperz
post
Post #5





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


tak tez myslalam azeby zrobic ale niestety sql nie akceptuje funkcji max w where.
Probowalam juz to zrobic w pojedynczym zapytania ale zwrocil mi komunikat: #1111 - Invalid use of group function

uff pogrzebałam w internecie i wpadlam na inny pomysl wyjscia z tej sytuacji
  1. SELECT max( data_godz ) , sum( ilosc ) , STATUS , forma FROM ehi_spis_rozbicie INNER JOIN ehi_spis USING ( id ) INNER JOIN ehi_statusy USING ( id ) WHERE id = '193' AND data_godz=(SELECT max(data_godz) FROM ehi_statusy WHERE id='193')


i działa.
Dzięki za pomoc

Ten post edytował agataperz 12.11.2011, 13:28:12
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 11:37