11 日間連続して出勤していない従業員を取得する
P粉103739566
P粉103739566 2023-08-18 09:31:19
0
1
449
<p>11 日間連続して出勤をマークしていない従業員をデータベースから取得しようとしています。 このために、従業員テーブルと出席テーブルがありますが、これに関する問題は、出席テーブルにレコードがないため、どうすれば </p> を取得できるかということです。 <p>多くのクエリを試しましたが、その一部は次のとおりです。 </p> <pre class="brush:php;toolbar:false;">SELECT e.name、e.full_name FROMタブ社員e 左結合 ( 選択する 従業員、従業員 MIN(出席日) AS 最初の出席日 タブから出席 GROUP BY 従業員 ) ar ON e.name = ar.employee WHERE ar.first_attendance_date が NULL または 存在しない ( 選択1 タブから出席 WHERE 従業員 = e.name AND 出席日 >= ar.first_attendance_date AND 出席日 < DATE_ADD(ar.first_attendance_date、間隔 11 日) )</pre> <p>別のクエリ:</p> <pre class="brush:php;toolbar:false;">SELECT e.name, COUNT(a.`attendance_date`), COUNT(e.`name`) from tabEmployee e LEFT JOIN タブ出席 a ON e.name = a.`employee` WHERE a.`employee` は NULL GROUP BY e.`name`</pre> <p><br /></p>
P粉103739566
P粉103739566

全員に返信(1)
P粉231079976

LAG() 分析関数を使用して、次のことを試すことができます:

リーリー

ここでの基本戦略は、CTE の出席日のラグ (以前の連続値) を生成することです。その後、11 日以上の空白期間がある従業員のみを報告します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!