안녕하세요 저는 SQL에 약간의 문제가 있습니다. 내 문제는 내 데이터의 날짜를 필터링 할 때 SQL 문을 경우에만 사용자의 employee_id 2 레코드를 반환합니다.여러 SELECT 문을 사용하는 SQL
이 내가 필터링 날짜에있는 내 작업 코드의 원본 문장입니다 :
SELECT * FROM `rmguidef_prs`.`payment_report` WHERE DATE(`Report_Timestamp`) = DATE_ADD(CURDATE(), INTERVAL 24 HOUR) AND Employee_ID IN (
SELECT T1.Employee_ID from `rmguidef_prs`.`employee` T1
WHERE T1.Supervisor_ID = '".$id."')
OR Employee_ID = '".$id."'
이 내가 필터를 필요로하는 수정 문은 다음과 같습니다 (그 확인 작업)
SELECT * FROM `report` WHERE Employee_ID IN (
SELECT T1.Employee_ID from `employee` T1
WHERE T1.Supervisor_ID = '".$id."')
OR Employee_ID IN (
SELECT T2.Manager_ID from `branches` T2
WHERE T2.Manager_ID = '".$id."')
OR Employee_ID = '".$id."'
그러나 이것을 다음과 같이 추가하십시오. Timestamp ) = DATE_ADD(CURDATE(), INTERVAL 24 HOUR)
날짜를 필터링하여 표시되는 레코드 만이부터 나와 있습니다. OR Employee_ID = '".$id."'
SELECT * FROM `report` WHERE DATE(`Timestamp`) = DATE_ADD(CURDATE(), INTERVAL 24 HOUR) AND Employee_ID IN (
SELECT T1.Employee_ID from `employee` T1
WHERE T1.Supervisor_ID = '".$id."')
OR Employee_ID IN (
SELECT T2.Manager_ID from `branches` T2
WHERE T2.Manager_ID = '".$id."')
OR Employee_ID = '".$id."'
수정 한 SQL 문을 오늘 날짜, 주, 월 및 지난 3 개월별로 필터링해야합니다. 이미 해당 필터를 코딩해야하지만이를 내 문장에 추가하는 방법을 알 수는 없습니다.
오! 그 시간은 1 일 앞선 서버 시간과 맞춰 졌기 때문에 괜찮습니다. 이게 효과가 있는지 볼게. – user3771102