Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie o zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
mysz0n
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 :/
Wicepsik
  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.
patryczakowy
  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ć
mysz0n
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.
Wicepsik
Dodaj kolumnę dodany i wprowadź tam datę (możesz też z godziną) dodania rekordu.

DATE, DATETIME
mysz0n
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?
erix
no to nie idzie:
  1. WHERE user=<ID> ORDER BY ticketID DESC

?
mysz0n
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?
erix
Kolumny sobie dostosuj, to było tylko przykładowe, ban na myślenie...? dry.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.