![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jestem raczkującą osobą w zapytaniach sql, mam tabelę zawierającą id,tick,date,status, id są różne niepowtarzajace, tick rozne powtarzajace, date - data, status 'new','on hold','closed', tabela może zawierac kilka wierszy że tick i status taki sam , potrzebuje zrobic zapytanie by wylistowal mi wszystkie wiersze group by tick , gdy status closed ale gdy data w date ostatnia z danych statusow (co jest ciezkie gdyz wiersze closed pomieszane a moje zapytania zawsze zwracaly pierwsza z tabeli) prosze o pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 31 Dołączył: 2.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Cytat gdy status closed ale gdy data w date ostatnia z danych statusow (co jest ciezkie gdyz wiersze closed pomieszane a moje zapytania zawsze zwracaly pierwsza z tabeli) Jeszcze raz po polsku bo nie "czytać pierwsza raz kumać" Ten post edytował wookieb 21.07.2010, 11:01:26 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
przykladowo mam :
id tick date status 1 12432 2010-07-20 11:12:34 new 2 12432 2010-07-20 11:12:37 on hold 3 16534 2010-07-20 11:32:19 new 4 11654 2010-07-20 11:45:23 closed 5 12432 2010-07-20 11:28:22 closed 6 24322 2010-07-20 11:23:34 closed 7 12432 2010-07-20 11:52:11 closed 8 12432 2010-07-20 11:34:12 on hold chce by mi wyswietlil 12432 2010-07-20 11:52:11 11654 2010-07-20 11:45:23 24322 2010-07-20 11:23:34 czyli zrobil liste z nr tick i data wg wszystkich tick ktore maja status closed (ale ten ostatni wg daty, bo kilka razy moze byc ten sam tick ze statusem closed) zapytanie w stylu : select t1.tick, t1.date from ticket as t1 where t1.status='closed' group by t1.tick w przypadku ticka 12432 mi date z id 5 pokaze zamiast z id 7 Ten post edytował chronek 21.07.2010, 11:24:29 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Można to zrobić na conajmniej kilka sposobów. Najprostszy to wybierz wszystkie rekordy gdzie status to 'closed', grupuj po 'tick' i w wyniku podaj 'tick' oraz największą datę (IMG:style_emoticons/default/smile.gif)
To jest to co podałeś, ale select t1.tick, t1.date zamieni się na select t1.tick, max(t1.date) Koniec (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
niestety zmieniając w moim zapytaniu na max , to pokazuje tylko jedną linijkę z tych 3-ch która ma najwieksza date
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 15 Dołączył: 1.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
W twoim? Może pokazałbyś te zapytanie?
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
To masz coś pochrzanione (IMG:style_emoticons/default/biggrin.gif) Ja aż z ciekawości sobie zrobiłem dokładnie taką strukturę jaką podałeś:
i zapytanie i... no kurna działa jak ta lala. W efekcie dostałem: tick czas 11654 2010-07-20 11:45:23 12432 2010-07-20 11:52:11 24322 2010-07-20 11:23:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 05:16 |