You have to pay attention to your joins, you have a three way join.
The PD_idno is the same in the first three tables, so change the joins so that tbl_Process only joins to tbl_InOut.
Like this:
SELECT B.PD_idno
,B.Fullname
,C.datetime_process
,C.detail_1
,C.detail_2
,CASE
WHEN (C.PD_idno = D.PD_idno) THEN E.DT_quantity
ELSE C.process_quantity
END AS Quantity
FROM tbl_PersonDetail B
JOIN tbl_InOut A ON A.PD_idno = B.PD_idno
JOIN tbl_Process C
ON a.PD_idno = C.PD_idno
AND C.datetime_process BETWEEN A.time_in AND A.time_out
LEFT JOIN tbl_DT1 D
ON C.detail_1 = D.detail_1
AND C.detail_2 = D.detail_2
LEFT JOIN tbl_DT2 E
ON D.DT_code = E.DT_code
AND D.datetime_process = E.datetime_process
WHERE C.datetime_process BETWEEN CONVERT(DATE, GETDATE() - 7) AND CONVERT(DATE, GETDATE())
Also make sure you have an index on tbl_Process (PD_idno,datetime_process)