5

出席システムを構築するという任務がありますが、私は1か所で立ち往生しています。葉を数えるとき、人が金曜日に休暇を取り、月曜日に再び休暇を取る場合、土曜日と日曜日の間も葉として数える必要があります。

次のクエリにより、テーブルから金曜日と月曜日のみを抽出できました。

SELECT * FROM  `main` WHERE (DAYOFWEEK( DATE ) =2 OR DAYOFWEEK( DATE ) =6 ) 
AND emp_no =4 AND STATUS ='leave' ORDER BY DATE ASC 

しかし、金曜日と次の月曜日だけを選択する方法がわからないので、その人が月曜日だけでなく金曜日にも休暇を取っていることがわかります。

どんな助けでもいただければ幸いです。

4

1 に答える 1

5

これにより、金曜日と次の月曜日にまたがるすべての「葉」が得られます。

SELECT *
FROM   main fri JOIN main mon
    ON fri.DAYOFWEEK(DATE)=6
   AND mon.DATE = fri.DATE + INTERVAL 3 DAY
   AND fri.emp_no = mon.emp_no
WHERE  fri.STATUS='leave' AND mon.STATUS='leave'
于 2012-10-15T10:44:05.290 に答える