[SQL] zaoytanie sortujące kolumny string, ale alfabet nie ma znaczenia |
[SQL] zaoytanie sortujące kolumny string, ale alfabet nie ma znaczenia |
24.06.2019, 20:29:31
Post
#1
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 0 Dołączył: 20.04.2017 Skąd: Warszawa Ostrzeżenie: (0%) |
Muszę sortować dla każdego person_id, gdzie priorytety porządkowe to:
1. actual: 1 > 0 2. type: Reg > Zee = Con 3. date_start: DESC czyli z tabeli danych: Kod +----+-----------+------+------------+------------+--------+ | id | person_id | type | date_start | date_end | actual | +----+-----------+------+------------+------------+--------+ | 1 | 1 | Reg | 01-01-2018 | 31-01-2018 | 0 | +----+-----------+------+------------+------------+--------+ | 2 | 1 | Con | 01-02-2019 | 01-05-2019 | 0 | +----+-----------+------+------------+------------+--------+ | 3 | 2 | Reg | 01-01-2018 | 31-05-2018 | 0 | +----+-----------+------+------------+------------+--------+ | 4 | 2 | Reg | 01-05-2018 | 31-07-2019 | 1 | +----+-----------+------+------------+------------+--------+ | 5 | 2 | Con | 01-06-2018 | 31-04-2020 | 1 | +----+-----------+------+------------+------------+--------+ | 6 | 2 | Zee | 31-05-2019 | 31-08-2019 | 1 | +----+-----------+------+------------+------------+--------+ zapytanie dla person_id = 1 miałoby posortować tak: Kod +----+-----------+------+------------+------------+--------+ | id | person_id | type | date_start | date_end | actual | +----+-----------+------+------------+------------+--------+ | 1 | 1 | Reg | 01-01-2018 | 31-01-2018 | 0 | +----+-----------+------+------------+------------+--------+ | 2 | 1 | Con | 01-02-2019 | 01-05-2019 | 0 | +----+-----------+------+------------+------------+--------+ a dla person_id = 2 miałoby posortować tak: Kod +----+-----------+------+------------+------------+--------+ | id | person_id | type | date_start | date_end | actual | +----+-----------+------+------------+------------+--------+ | 4 | 2 | Reg | 01-05-2018 | 31-07-2019 | 1 | +----+-----------+------+------------+------------+--------+ | 6 | 2 | Zee | 31-05-2019 | 31-08-2019 | 1 | +----+-----------+------+------------+------------+--------+ | 5 | 2 | Con | 01-06-2018 | 31-04-2020 | 1 | +----+-----------+------+------------+------------+--------+ | 3 | 2 | Reg | 01-01-2018 | 31-05-2018 | 0 | +----+-----------+------+------------+------------+--------+ Ponadto, ale jest to dodatkowe pytanie, muszę pobrać najstarszą datę początkową z zapytania, ale TYLKO, jeśli pomiędzy poszczególnymi wierszami zachowano ciągłość daty |
|
|
25.06.2019, 01:47:38
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 828 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Coś takiego należałoby zrobić... czyli łączysz dwie te same tabele, tylko jedną z grupowaną, drugą normalną...
zapytanie z palca, więc może nie działać, chodzi o logikę
|
|
|
25.06.2019, 02:07:19
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
@Tomplus co Ty tworzysz?
Jeśli chodzi o sortowanie, to załatwisz to łatwo:
Jeśli chodzi o daty, to musisz doprecyzować - co to w Twoim przypadku znaczy ciągłość? I co chcesz zwrócić, jeśli ciągłości nie ma? Najprawdopodobniej wygodniej będzie to załatwić skryptem, chyba że koniecznie musi być zapytanie. |
|
|
25.06.2019, 16:58:33
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 828 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Faktycznie przesadziłem. sądziłem że on to grupuje, i dlatego nie sortuje mu tak jak oczekuje
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.03.2024 - 09:28 |