Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie [Kapitał], Modyfikacja zapytania
yellow7
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.01.2010

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


Jak mozna zmodyfikowac ponizsze zapytania abym nie dostawal sumy wplat dla danego dnia tylko całościową wartość wszystkich dotad otrzymanych wplat na kazdy dzien.

Z gory dzieki za podpowiedzi.

  1. SELECT DATA,SUM( WPLATY)
  2.  
  3. AS sum_wplaty
  4.  
  5. FROM UTARG WHERE DATA BETWEEN '2010-01-05' AND '2010-01-15'
  6.  
  7. GROUP BY DATA




Zapytanie zwraca

DATA sum_wynik
2010-01-05 122.6
2010-01-06 164.2
2010-01-07 23.3
2010-01-08 10.4
2010-01-09 19.65
2010-01-10 43.4
2010-01-11 9.2
2010-01-12 6.2
2010-01-13 125.75
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Kod
SET @sumaBiezaca = 0;
SELECT
  DATA,
  sum_wplaty,
  @sumaBiezaca := @sumaBiezaca + sum_wplaty AS sumaBiezaca
FROM (
  SELECT
    DATA,
    SUM( WPLATY) AS sum_wplaty
  FROM
    UTARG
  WHERE
    DATA BETWEEN '2010-01-05' AND '2010-01-15'
  GROUP BY DATA;
)


Ten post edytował Mchl 23.02.2010, 13:52:01
Go to the top of the page
+Quote Post
yellow7
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.01.2010

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


Niestety wysypuje mi błąd.

  1.  
  2. SELECT
  3. DATA ,
  4. sum_wplaty,
  5. @sumaBiezaca := @sumaBiezaca + sum_wplaty AS sumaBiezaca
  6.  
  7. FROM (
  8.  
  9. SELECT
  10. DATA [b],
  11. SUM[/b]( WPLATY) AS sum_WPLATY //w tym miejscu podswietla blad
  12. FROM UTARG
  13. WHERE
  14. DATA BETWEEN '2010-01-05'
  15. AND '2010-01-15'
  16. GROUP BY DATA ;
  17.  
  18. MySQL zwrócił komunikat: Dokumentacja
  19. #1064 - Something is wrong in your syntax obok '' w linii 13
  20.  
  21.  
  22.  
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Raczej chodzi o ten średnik po GROUP BY DATA;
Nie powinno go być.
Go to the top of the page
+Quote Post
yellow7
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.01.2010

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


Po usunieciu srednika blad sie troszke zmienil.

#1248 - Every derived table must have its own alias
# MySQL zwrócił pusty wynik (zero rekordów).

  1. SET @sumaBiezaca =0;
  2. SELECT
  3. DATA , sum_wplaty,
  4. @sumaBiezaca := @sumaBiezaca + sum_wplaty AS sumaBiezaca
  5. FROM (
  6.  
  7. SELECT
  8. DATA ,
  9. SUM( WPLATY) AS sum_wplaty
  10.  
  11. FROM UTARG
  12.  
  13. WHERE
  14. DATA BETWEEN '2010-01-05'
  15. AND '2010-01-15'
  16. GROUP BY DATA
  17. )
Go to the top of the page
+Quote Post
Mchl
post
Post #6





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Kod
SET @sumaBiezaca = 0;
SELECT
   DATA,
   sum_wplaty,
   @sumaBiezaca := @sumaBiezaca + sum_wplaty AS sumaBiezaca
FROM (
   SELECT
     DATA,
     SUM( WPLATY) AS sum_wplaty
   FROM
     UTARG
   WHERE
     DATA BETWEEN '2010-01-05' AND '2010-01-15'
   GROUP BY DATA
) AS sq
Go to the top of the page
+Quote Post
yellow7
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.01.2010

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


Wielkie dzieki Mchl. Wszystko dziala po dopisaniu "sq"
Go to the top of the page
+Quote Post
Mchl
post
Post #8





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Na przyszłość: każde podzapytanie musi mieć nadany alias (przez operator AS), czy to będzie 'sq', czy 'costam' nie ma już znaczenia.
Go to the top of the page
+Quote Post
lukasz.adamczews...
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 2
Dołączył: 23.02.2010

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


Cytat(Mchl @ 23.02.2010, 22:09:22 ) *
Na przyszłość: każde podzapytanie musi mieć nadany alias (przez operator AS), czy to będzie 'sq', czy 'costam' nie ma już znaczenia.


albo rób alias po spacji za podzapytaniem, nazwą kolumny jak Ci wygodniej, a przede wszystkim krócej bo po to są aliasy przede wszystkim
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: 20.08.2025 - 15:02