Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL]Jak poprawić zapytanie?
Kocurro
post
Post #1





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Witam,

Możecie powiedzieć jak powinienem poprawić to zapytanie:

  1. SELECT SUM( `amount` ) AS `totalamount`
  2. FROM `accounting` WHERE `type` = 'cash' AND totalamount > 5 *100 *10000
  3. GROUP BY `username`


Chodzi o to by wybierać tylko te sumy rekordów dla których suma jest większa od zadanej wartości

Z góry dzięki.

Pozdrawiam,
Łukasz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Spirit86
post
Post #2





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Przecież pobierasz tylko te warotści...


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
marast78
post
Post #3





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 30.11.2004

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


Cytat(Prometeus @ 2005-10-31 22:32:09)
Możecie powiedzieć jak powinienem poprawić to zapytanie:

  1. SELECT SUM( `amount` ) AS `totalamount`
  2. FROM `accounting` WHERE `type` = 'cash' AND totalamount > 5 *100 *10000
  3. GROUP BY `username`


Chodzi o to by wybierać tylko te sumy rekordów dla których suma jest większa od zadanej wartości

Według mnie niepotrzebne były cudzysłowy a wartość 5 *100 *10000 lepiej przedstawić jako 5000000

  1. SELECT SUM( amount ) AS totalamount
  2. FROM accounting WHERE type = 'cash' AND totalamount > 5000000
  3. GROUP BY username


--------------------
Go to the top of the page
+Quote Post
Kocurro
post
Post #4





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Ale wyskakuje błąd przy tych zapytaniach :/

Muszę korzystać z MySQL 4.1 więc może on nie potrafi jeszcze tego zrobić jak należy :/
Go to the top of the page
+Quote Post
Spirit86
post
Post #5





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Problem pojawia się z tego co widzę z GROUP, starsze wersje MySQL nie radza sobie widzocznie z połączeniem warunku i ordera.

  1. SELECT SUM( `amount` ) AS `totalamount`
  2. FROM `accounting` GROUP BY `username`


później w php obraobisz to w php (kilka warunków),tylko powstanie coś strasznie nie optymalnego. :/


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
Kocurro
post
Post #6





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Bardzo nieoptymalnego bo jest blisko 20 tysięcy osób smile.gif

Ale znalazłem rozwiązanie - tymczasową tabelę dałem - do niej pakuje sumy a potem na sumach działąm smile.gif

Efekt - nienajgorszy biggrin.gif
Go to the top of the page
+Quote Post
marast78
post
Post #7





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 30.11.2004

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


Cytat(Prometeus @ 2005-11-01 10:09:34)
Ale wyskakuje błąd przy tych zapytaniach :/

Muszę korzystać z MySQL 4.1 więc może on nie potrafi jeszcze tego zrobić jak należy :/

No tak to możliwe starsze wersje maja to do siebie winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
Kocurro
post
Post #8





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Niestety - nowsze wersje wymagają php 5 by móc się z nimi łączyć a na serwerze php 5 jeszcze zainstalować nie mogę bo nie wszystkie skrypty na nim dobrze działają.

Że też nie umieli zrobić mysqli dla php4...ehh...słabi coś są biggrin.gif
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: 19.08.2025 - 10:50