Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zapytaniem. Aktualne umowy
gummmibear
post 15.10.2009, 14:25:23
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 12.03.2009
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Chciałbym wyciągnąć wszystkie aktywne umowy.
na tabele z umowami składa się :
-id
-id_klienta
-id_projektu
-data_rozpoczęcia
-data_zakonczenia

teraz jeżeli mamy taką tabelę:


|id| |id_klient| id_projekt | data_rozpoczecia | data_zakonczenia |


4 | 1 | 46 | 2009-08-24 | 2010-09-12 |

1 | 1 | 75 | 2009-03-09 | 2010-09-12 |

5 | 1 | 75 | 2009-08-24 | 2010-09-12 |


wynikiem zapytania powinno być najświeższa umowa

dla danego id_klienta i id_projektu

czyli coś takiego:

4 | 1 | 46 | 2009-08-24 | 2010-09-12 |

5 | 1 | 75 | 2009-08-24 | 2010-09-12 |




Ten post edytował gummmibear 15.10.2009, 17:10:40
Go to the top of the page
+Quote Post
thek
post 15.10.2009, 23:27:40
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Więc zrób tak... Najpierw posortuj całą tablicę po polach:
id_klienta - rosnąco,
id_projektu - rosnąco,
id - malejąco
To przygotuje grunt pod to, byś potem tak posortowane dane pogrupował po id_projektu smile.gif
SELECT * FROM (SELECT * FROM tabela ORDER BY id_klienta ASC, id_projekt ASC, id DESC) sorted GROUP BY id_projekt

Ten post edytował thek 15.10.2009, 23:31:19


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
jmail
post 16.10.2009, 04:32:12
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

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


  1.  
  2. SELECT
  3. id_klient
  4. ,id_projektu
  5. ,max(data_rozpoczecia)
  6. FROM
  7. tabela
  8. GROUP BY
  9. id_klienta
  10. ,id_projektu
  11.  
Go to the top of the page
+Quote Post
thek
post 16.10.2009, 11:40:43
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




jmail... Jeśli najpierw pogrupuje po id_klienta to zwróci mu tylko 1 rekord. Popatrz na to co chce uzyskać.... Jeśli ma kilka projektów jednego klienta to wszystkie te projekty chce wyświetlić, nie tylko najnowsze umowy tegoż kolesia zauważ, że w przykładzie wyniku oba rekordy mają te samo id_klient. Trochę źle się wyraził w tym co chce uzyskać, ale przykład raczej rozwiewa wątpliwości.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 21:41