hi I'm new to sql server, I'm trying to make a stored procedures to print the attendance recapitulation. but after running the results from jamscan column it is not in accordance with jdwhr beg for enlightenment from the master
/****** Object: StoredProcedure [dbo].[CTKRKP_ABSEN] Script Date: 02/09/2019 21:07:06 ******/SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CTKRKP_ABSEN]
@USERID CHAR (5), @TGLAWAL DATETIME, @TGLAKHIR DATETIME
AS
-- MEMBUAT TABEL JADWAL JAM DAN TANGGAL KERJA
create table #JDWSCAN
(
[KDHARI] [INT],
[HARI] [varchar] (20),
[JDWHR] [varchar] (20)
)
INSERT INTO #JDWSCAN
(KDHARI,HARI,JDWHR) VALUES ('1','Monday','07:15:00'),('2','Friday','07:00:00'),('3','Monday','11:45:00'),('4','Monday','13:15:00'),('5','Monday','16:00:00'),
('6','Friday','11:30:00'),('7','Tuesday','07:15:00'),('8','Tuesday','11:45:00'),('9','Tuesday','13:15:00'),('10','Tuesday','16:00:00'),('11','Wednesday','07:15:00'),
('12','Wednesday','11:45:00'),('13','Wednesday','13:15:00'),('14','Wednesday','16:00:00'),('15','Thursday','07:15:00'),('16','Thursday','11:45:00'),
('17','Thursday','13:15:00'),('18','Thursday','16:00:00')
--DELETE FROM #JDWSCAN
-- JOIN TABEL Kldr_Kerja DENGAN #JDWSCAN
SELECT A.USERID,A.TGLKERJA,B.JDWHR INTO #WKT_KERJA
FROM Kldr_Kerja A
LEFT JOIN #JDWSCAN B ON A.HARI = B.HARI
WHERE USERID = '210'
ORDER BY A.TGLKERJA
-- JOIN #JDWSCAN DENGAN DATA PEGAWAI
SELECT D.USERID,D.Badgenumber NO_URUT,D.SSN NIP,D.Name NAMA,D.TITLE JABATAN,C.TGLKERJA,C.JDWHR
INTO #ABSEN_01
FROM #WKT_KERJA C
LEFT JOIN USERINFO D ON C.USERID = D.USERID
WHERE D.USERID = @USERID
ORDER BY D.USERID,C.TGLKERJA
-- TABEL TANGGAL DAN JAM SCAN SCAN
SELECT USERID,convert(date,CHECKTIME,103) TGLSCAN,convert(time,CHECKTIME,114) JAMSCAN,CHECKTYPE KDSCAN
INTO #SCANTIME1 FROM CHECKINOUT
---- JOIN TABEL #ABSEN_01 DENGAN #SCANTIME
SELECT E.USERID,F.NO_URUT,F.NIP,F.NAMA,F.JABATAN,F.TGLKERJA,F.JDWHR,E.TGLSCAN,E.JAMSCAN,E.KDSCAN INTO #ABSEN_02
FROM #ABSEN_01 F
LEFT JOIN #SCANTIME1 E ON F.TGLKERJA = E.TGLSCAN AND F.USERID=E.USERID AND E.KDSCAN = 'I'
WHERE E.USERID = @USERID
ORDER BY E.USERID,F.TGLKERJA
--select * from #SCANTIME1 where USERID = '210'
-- JOIN IJIN DENGAN #ABSEN_02
SELECT R.USERID,R.NO_URUT,R.NIP,R.NAMA,R.JABATAN,R.TGLKERJA,R.JDWHR,R.TGLSCAN,R.JAMSCAN,R.KDSCAN,convert(date,S.STARTSPECDAY,103) TGLIJIN,
convert(date,S.STARTSPECDAY,103) TGLMULAI,convert(date,S.ENDSPECDAY,103) TGLAKHIR,S.DATEID KDIJIN,S.YUANYING KETERANGAN,
CASE S.DATEID WHEN '1' THEN 'SAKIT' WHEN '2' THEN 'CUTI' WHEN '3' THEN 'IJIN' WHEN '999' THEN 'DINAS LUAR' ELSE NULL END STATUS,
DATEDIFF(DAY,S.STARTSPECDAY,S.ENDSPECDAY)+1 JML_IJIN INTO #ABSEN_03 FROM #ABSEN_02 R
LEFT JOIN USER_SPEDAY S ON S.USERID = R.USERID AND R.TGLKERJA = S.STARTSPECDAY
WHERE R.USERID = @USERID
ORDER BY R.USERID,R.TGLKERJA,R.TGLSCAN,R.JAMSCAN,S.STARTSPECDAY
SELECT * FROM #ABSEN_03 where TGLKERJA between @TGLAWAL and @TGLAKHIR order by TGLKERJA
--EXECute CTKRKP_ABSEN '210','2019-01-01','2019-01-31'