Kopiuj
select convert(decimal(12,2), convert(varchar(18), DATEDIFF(month, nasza_data, GETDATE())/12)+'.'+right('0'+convert(varchar(18), DATEDIFF(month, nasza_data, GETDATE())%12), 2))
O to chodziło. Dziękuje bardzo Panie Pawle :)
Mam jeszcze jeden, podobny problem, ale tutaj wynik już mam wpisany w tabeli.
Trzeba go jednak obrobić.
SELECT "HisZatrud"."HZT_StazLata", "HisZatrud"."HZT_StazMies", "HisZatrud"."HZT_StazDni", "HisZatrud"."HZT_PraId", "HisZatrud"."HZT_Etaty", "HisZatrud"."HZT_DkmId" FROM "CDN_Baza"."CDN"."HisZatrud" "HisZatrud" WHERE HZT_PraId in ('106', '105', '109')
Zapytanie wyciąga mi staż pracy ogółem w formie:
HZT_Staz_Lata = 11 , HZT_Staz_miesiace = 2
muszę obie komórki połączyć ze sobą, a następnie przekształcić do formatu:
Kopiuj
0,06 = 6 miesięcy,
2,11 = 2 lata i 11 miesięcy,
12,00 = 12 lat i 0 miesięcy,
12,05 = 12 lat i 5 miesięcy,
czyli w tym wypadku HZT_Staz_Lata = 11 , HZT_Staz_miesiace = 2 wynik powinien wyglądać tak:
11,02
Poszukałbym rozwiązania w internecie, ale nie mam czasu na to. Do dziś mam termin z Z 12 dla G U S.
//EDIT
Czegoś takiego użyłem CAST(HZT_StazLata as VARCHAR(5)) + ', ' + CAST(HZT_StazMies AS VARCHAR(5))
niestety wynik jest taki 11,2, a musi być 11,02. Tam gdzie miesiąc jest w zakresie 1-9 to musi go poprzedzać 0
**Rozwiązałem ;)
case
WHEN CAST(HZT_StazMies AS VARCHAR(5)) = '1' then '01'**