Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2021-09-27, 04:13x



Odpowiedz w temacie  [ Posty: 2 ] 
ID z bazy danych aktywnych kont 
Autor Wiadomość

Rejestracja: 2021-07-14, 09:22
Posty: 2
Post ID z bazy danych aktywnych kont
witam
OD jakiegoś czasu próbuję napisać query do wyświetlenia wszystkich ID z bazy pracowników z podziałem na status (lub coś co pozwoli na rozróżnienie pracowników)
Generalnie chodzi mi o zestawienie wszystkich ID z info:

| ID pracownika | Status |
|----------------------------------------------------------------|
| 434134 | ok |
| 234123 | wypowiedzenie umowy |
| 213412 | nie pracuje |



z góry dziękuję
pozdrawiam
L


2021-07-14, 11:50
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2021-07-14, 09:22
Posty: 2
Post Re: ID z bazy danych aktywnych kont
Znalazłem rozwiązanie:

use [SAGE_KIP]
SELECT
I.[employee_id]
,case
when max(R.end_date) <= getdate() then 0
when datediff(day, getdate(), max(R.end_date)) < 90 then -1
when max(R.end_date) >= getdate() then 1
end as is_active
FROM [KD].[HRV_ITEMS] I
left join [KD].[HRV_ROWS] R on R.id = I.row_id
where I.definition_id = (select id from [KD].[SKLADNIKI] where nazwa = 'data zakończenia pracy')
group by I.employee_id


w zapytaniu zastosowałem składnię z nazwy dla ułatwienia uzyskania id składnika (select id from [SAGE_COI_KIP].[KD].[SKLADNIKI] where nazwa = 'data zakończenia pracy')
w taki sposób zamiast wpisywać ID pozycji (w moim przypadku jest to 8513) użyłem opcji wyszukania id pozycji po nazwie, czyli nie trzeba znać id z symfonii danego składnika a jedynie jego nazwę (to rozwiązanie sprawdza się przy innych zaawansowanych zapytaniach)

wynik zapytania wyświetlany jest w dwóch kolumnach: employee_id oraz is_active
przy czym:
0 = pracownik już nie pracuje
1 = pracownik nadal jest zatrudniony
-1 = niedługo umowa wygaśnie, zbliża się termin umowy

|...20978.....|..0..|
|...20979.....|..1..|
|...20980.....|..0..|
|...20981.....|..1..|
|...20982.....|.-1..|
|...20983.....|..0..|
|...20984.....|..1..|
|...20985.....|..0..|
|...20986.....|.-1..|
|...20987.....|..1..|


usuwając tą linię z zapytania
when datediff(day, getdate(), max(R.end_date)) < 90 then -1
widok będzie zawierał listę aktywnych i nie aktywnych pracowników, czyli tylko 0 i 1

Teraz już jest z górki :-D
do tego widoku można podłączyć imiona i nazwiska. No i powstała piękna lista pracowników, teraz można założyć dodatkowy filtr pokazujący tylko pracowników z parametrem 1 dla is_active lub dopisać do where: and R.end_date >= getdate()


2021-07-16, 14:32
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 2 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. obroty kont aktywnych

w Programy Księgowe

_michal

1

608

2021-01-05, 14:40

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. FK 2020.1 Błąd zestawienia Obrotów kont aktywnych

w Programy Księgowe

aneta.g

1

1027

2020-05-27, 08:25

a.f Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Liczbę aktywnych pozycji płacowych

w Programy Kadrowo Płacowe

roogit

7

2283

2009-09-01, 08:54

Jarek75 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Szybkość bazy danych

w Programowanie

robert

4

872

2021-03-24, 12:15

robert Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot] i 1 gość


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant