MySql Query to Select a table, table을 반복하여 결과 테이블을 생성하기 위한 조건을 작성
User table :
employee_id
employee_name
joined_date
Worksheet table :
id | user_id | start_date | end_date | attachment | Status
1 56 2017-10-01 2017-10-07 somefile Submitted
2 57 2017-10-08 2017-10-14 somefile Approved
3 57 2017-10-14 2017-10-21 somefile Approved
사용자 테이블과 워크시트 테이블이 있습니다.사용자는 매주 워크시트를 제출합니다.이제 관리자는 임의 날짜 선택 시 다중 선택된 사용자 워크시트를 보려고 합니다.
볼 수 있는 워크시트 표에서 사용자 57은 10월에 두 개의 워크시트를 제출했고, 56은 하나의 워크시트만 제출했습니다.
양식 값:
$fromDate = 01 oct 2017
$toDate = 23 oct 2017
$employees = 56, 57, 58
사용자 가입일이 사용자 테이블에 저장됩니다.사용자의 가입 날짜가 admin-selected-$fromDate보다 크면 가입 날짜가 fromDate가 됩니다.
여기서 관리자는 3주의 날짜 범위를 선택했습니다.하지만 사용자 57이 둘째 주에 합류했습니다.첫 주 동안 사용자-57이 NOT-SUBMITED로 표시됩니다.하지만 실제로 사용자는 첫 주에 가입하지 않았습니다.그 주를 건너뛰도록 말입니다.
참고 : 사용자는 일주일 동안 시트를 제출할 수 없으며, 해당 레코드만 NOT Submitted로 표시해야 합니다.
저는 이것을 PHP로 해냈고 결과를 배열로 받았습니다.하지만 저는 sql 명령어로는 이것을 할 수 없습니다.나는 이것을 페이지화를 달성하기 위한 쿼리입니다.
구현하고자 하는 논리:
$fromDate; //from the Post request
$toDate; //from post request
$adminSelectedUsers; //from post request
$resultSet = []; // Declared for the result set
foreach($adminSelectedUsers as $userDetail) {
// Deciding the from date
$joinedDate = $userDetail->joined_date;
if($joinedDate >= $fromDate) {
$fromDate = $selectedDate;
}
$worksheet = select worksheet where userid=$userDetail->employee_id and start_date >= $fromdate and end_date <= $toDate;
foreach($worksheet as $worktemp) {
$resultSet[] = $worktemp;
}
}
return $resultSet;
이제 나는 Mysql에 동일한 논리를 구현하고자 합니다.이게 가능한가요?미리 감사드립니다.
언급URL : https://stackoverflow.com/questions/46905730/mysql-query-to-select-a-table-iterate-through-the-table-to-write-a-condition-to
'programing' 카테고리의 다른 글
Visual Studio 2015 Community의 SQL Server Object Explorer에 LocalDB를 추가하는 방법은? (0) | 2023.10.21 |
---|---|
CUDAC 및 C++ 설명 (0) | 2023.10.16 |
AutoPostBack= 간의 차이True 및 AutoPostBack= false? (0) | 2023.10.16 |
jQuery DataTables를 사용할 때 마지막 열의 정렬 사용 안 함 (0) | 2023.10.16 |
JQuery: div가 보이는 경우 (0) | 2023.10.16 |