Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pytanie o zapytanie, banalne a jakoś mnie rozkłada
mysz0n
post 13.08.2009, 17:02:40
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

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


Witam mam taki problem, mam tabelę:

  1. id_awarii, id_klienta, data_zgloszenia, opis, status_awarii


tabela ta trzyma wpisy dot. interwencji serwisantów u klienta.
każda interwencja to kolejny wpis (tabele na potrzeby zapytania na forum oczywiście uprościłem)
status awarii to % reprezentacja wykonania zadania, w tym momencie ostatni wpis przy każdym kliencie jest najświeższy. i chcialbym wyświetlić tabelke z najświeższymi wpisami przy każdym kliencie. robie tak:

  1. SELECT MAX( id_awarii ) , `id_klienta` , `status_awarii` , `opis`
  2. FROM `awarie`
  3. GROUP BY `id_klienta`
  4. LIMIT 0 , 30


w tym momencie ID AWARII wyświetlają sie poprawne ale STATUS_AWARII wyświetla się pierwszy dodany do danego klienta, czyli
jak klient ma wpis o statusie awarii 25 pozniej 50 i 100, to chcialbym zeby wyświetlił się ten ostatni (jakby nie było z najwyższym ID) a wyświetla się ten pierwszy :/
Go to the top of the page
+Quote Post
Wicepsik
post 13.08.2009, 17:18:19
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


  1. SELECT * FROM awarie GROUP BY id_awarii DESC LIMIT 1

Chodziło Ci o wyświetlenie ostatniego wyniku ?
Może pokaż jak Ci wychodzi, a jak chcesz mieć zrobione.


--------------------
Go to the top of the page
+Quote Post
patryczakowy
post 13.08.2009, 17:19:31
Post #3





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


  1. SELECT MAX( id_awarii ) , `id_klienta` , `status_awarii` , `opis`FROM `awarie`GROUP BY `id_klienta` ORDER BY status_awarii DESC LIMIT 0 , 30

Powinno działać


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
mysz0n
post 13.08.2009, 17:40:32
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

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


zakladając ze mam dane
id_awarii | nazwisko_klienta | status

i mam dane

1 | Kowalski | 0%
2 | Kowalski | 25%
3 | Kowalski | 50%
4 | Kowalski | 100%
5 | Nowak | 50%
6 | Nowak | 25%
7 | Nowak | 100%
8 | Nowak | 50%
9 | Nowak | 25%
10 | Nowak | 0%

i chciałbym zobaczyc:
4 | Kowalski | 100%
10 | Nowak | 0%

patryczakowy - nie chce widzieć najyższego statusu dla danego klienta tylko ostatnio wprowadzony.
Go to the top of the page
+Quote Post
Wicepsik
post 13.08.2009, 17:42:03
Post #5





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


Dodaj kolumnę dodany i wprowadź tam datę (możesz też z godziną) dodania rekordu.

DATE, DATETIME

Ten post edytował Wicepsik 13.08.2009, 17:42:26


--------------------
Go to the top of the page
+Quote Post
mysz0n
post 13.08.2009, 21:42:10
Post #6





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

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


mam kolumne z datą, tylko chodzi mi o zrobienie tego poprzez poszukanie awarii dla danego klienta z najwyzszym ID awarii, przeciez da sie to bez sprawdzania daty wyrzucic?
Go to the top of the page
+Quote Post
erix
post 13.08.2009, 22:43:45
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




no to nie idzie:
  1. WHERE user=<ID> ORDER BY ticketID DESC

?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mysz0n
post 14.08.2009, 09:38:18
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

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


niebardzo rozumiem ticetID, ogolnie nie ma wiekszego problemu żebym dodał nową kolumne, NAJNOWSZE, i tam dawac 0 lub 1 ale chodziło o to że chciałem to rozwiązać bardziej pr0 a nie mnożyć kolejne kolumny, mozna też lecieć po dacie, tylko date zapisuje jako 2009-08-02 nie jako timestamp.
a jak będzie z optymalnością? lepiej dodać kolumne NAJNOWSZE i sprawdzać czy o czy 1 czy po timestampie sprawdzać gdzie jest najwyższy? czy to nie obciąży bardziej bazy?
Go to the top of the page
+Quote Post
erix
post 14.08.2009, 10:54:32
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kolumny sobie dostosuj, to było tylko przykładowe, ban na myślenie...? dry.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 21.06.2025 - 14:05