Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]Filtr powtarzających się rekordów
perhydrol
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

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


posiadam tabele w bazie z zamówieniami
Kod
| id_zam |    id_towar       | id_uzyt    |    nr_zamowienia     | ile_sztuk |    kwota    | data_zam |
|  1       |     2        |    1       |       200906160001   |     1     |      30.00  | 2009-06-15  |
|  2       |     7        |    1       |       200906160001   |     2     |      10.00  | 2009-06-15  |
|  3       |     4        |    1       |       200906160002   |     1     |      40.00  | 2009-06-16  |


(nazwy powyżej skróciłem żeby było bardziej czytelne)

Zależy mi na wyświetleniu następujących danych:

- NR_ZAMOWIENIA
- ŁĄCZNA_KWOTA = [suma(kwota) o takim samym nr_zamowienia]
- DATA_ZAMOWIENIA

zmajstrowałem takie zapytanie ale ono wyświetla mi jedynie NR_ZAMOWIENIA i nie chce nic więcej, nie wiem też w jaki sposób połączyć,
  1. SUM(kwota) AS laczna_kwota WHERE nr_zamowienia LIKE "jest taki sam"

i
  1. SELECT DISTINCT(nr_zamowienia) AS nr_zamowienia FROM zamowienia ORDER BY data_zamowienia ASC


trochę zbyt zaawansowane zapytanie jak dla mnie, pomoże ktoś?

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) :/

Ten post edytował perhydrol 16.06.2009, 20:48:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
perhydrol
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

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


dzięki, nie zwracałem na to wcześniej uwagi, jeśli chodzi o kolejność, myślałem że wystarczy podać warunek a kolejność nie jest aż tak istotna

czyli:
  1. SELECT *, SUM(zamowienia.kwota) AS kwota FROM zamowienia JOIN uzytkownik ON uzytkownik.id_uzytkownik = zamowienia.id_uzytkownik JOIN ksiazka ON ksiazka.id_ksiazka = zamowienia.id_ksiazka WHERE nr_zamowienia = '200906160001' GROUP BY zamowienia.nr_zamowienia "


dzięki, po raz kolejny... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


********************************************************************************
********************************************************************************
********************************************************************************

nie chcę zakładać nowego Tematu a mam problem z budową zapytania MYSQL
mianowicie mam takie zapytanie:
  1. SELECT *
  2. FROM ksiazka WHERE id_ksiazka
  3. IN ( SELECT id_ksiazka FROM zamowienia GROUP BY id_ksiazka HAVING COUNT( id_ksiazka ) >1 )
  4. LIMIT 0, 8


tylko chciał bym aby wynik był prezentowany w kolejności od najwiekszej liczby wystapień id_ksiazka

czyli:
  1. SELECT COUNT(id_ksiazka) AS ilosc_wystapien FROM zamowienia GROUP BY id_ksiazka HAVING COUNT( id_ksiazka ) >1 ORDER BY ilosc_wystapien DESC


z tabeli
ZMOWIENIA
Kod
id_zmowienia    |    id_ksiazki     |......
        1       |       8           | ......
        2       |       4           | ......
        3       |       2           | ......
        4       |       4           | ......
        5       |       8           | ......
        6       |       8           | ......


Próbowałem już tak, ale w dalszym ciągu error:
  1. SELECT *
  2. FROM ksiazka WHERE id_ksiazka
  3. IN ( SELECT id_ksiazka FROM zamowienia GROUP BY id_ksiazka HAVING COUNT( id_ksiazka ) >1 )
  4. ORDER BY (
  5. SELECT COUNT(id_ksiazka) AS ilosc_wystapien FROM zamowienia GROUP BY id_ksiazka HAVING COUNT( id_ksiazka ) >1 ORDER BY ilosc_wystapien DESC LIMIT 1
  6. )


będę wdzięczny za jakąkolwiek podpowiedz, bo ogólnie to w dalszym ciągu walczę z opanowanie połączeń zapytań

Ten post edytował perhydrol 20.06.2009, 15:16:51
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 08:01