Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]połączenie zapytań
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Witam, mam problem z połączeniam zapytań MySQL
teraz mam tak:
struktura tabela1
ID_REK | ID_REK1 | ILOSC | ILOSC1 | ILOSC2 | WARTOSC

struktura tabela2
ID_REK | IMIE_NAZWISKO

na tę chwilę korzystam z dwóch zapytań:
  1. SELECT SUM(WARTOSC) AS WARTOSC, imie_nazwisko AS imie_nazwisko FROM TABELA1
  2. LEFT JOIN TABELA2 ON TABELA1.id_REK=TABELA2.id_REK GROUP BY imie_nazwisko


  1. SELECT SUM(tab1.ilosc), TABELA2.imie_nazwisko FROM
  2. (
  3. SELECT (ilosc) AS ilosc, id_REK AS id_REK FROM TABELA1
  4. UNION ALL
  5. SELECT (ilosc1) AS ilosc, id_REK AS id_REK FROM TABELA1
  6. UNION ALL
  7. SELECT (ilosc2) AS ilosc, id_REK AS id_REK FROM TABELA1
  8. ) AS tab1
  9. LEFT JOIN TABELA2 ON TABELA1.id_REK=TABELA2.id_REKk GROUP BY TABELA2.imie_nazwisko


wszystko działa dobrze, jednak chcę sortować wyniki
SUM(ilosc)/SUM(wartosc) i nie wiem jak to zrobić
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Spróbuj tak:
  1. SELECT SUM(t1.ilosc+t1.ilosc1+t1.ilosc2) AS ilosc,SUM(t1.wartosc) AS wartosc,t2.imie_nazwisko
  2. FROM tabela1 AS t1
  3. LEFT JOIN tabela2 ON t1.id_rek=t2.id_rek GROUP BY imie_nazwisko
  4. ORDER BY ilosc/wartosc


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





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


dostaję komunikat
#1247 - Reference 'ilosc' not supported (reference to group function)

nie napisałem wcześniej, sortowanie chcę zrobić przez wynik dzielenia tych dwóch wartości

Ten post edytował krzesik 24.05.2014, 17:14:45
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Cytat(krzesik @ 24.05.2014, 18:13:58 ) *
nie napisałem wcześniej, sortowanie chcę zrobić przez wynik dzielenia tych dwóch wartości

Napisałeś.

Zamiast aliasów spróbuj bezpośrednio:
  1. SELECT SUM(t1.ilosc+t1.ilosc1+t1.ilosc2) AS ilosc,SUM(t1.wartosc) AS wartosc,t2.imie_nazwisko
  2. FROM tabela1 AS t1
  3. LEFT JOIN tabela2 ON t1.id_rek=t2.id_rek GROUP BY imie_nazwisko
  4. ORDER BY SUM(t1.ilosc+t1.ilosc1+t1.ilosc2)/SUM(t1.wartosc)


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





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


dzięki pomogło
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: 21.08.2025 - 06:26