質問編集履歴

1 テーブル情報の添付

yryuu

yryuu score 147

2017/03/09 20:11  投稿

mysql 勤怠管理一週間分のユーザデータを集めたい
以下のようなsqlで本日から1週間分の勤怠データをとってくるようにしたいのですが
存在しない場合もdate_format(now(), '%Y.%m.%d')だけ残して空の情報を取得したいのですが、可能なのでしょうか
a_clock_in_schedule_dateは勤怠の出社時間を入れております
PHPのプログラムなのですが、ない場合、いちいち配列からないかどうか探すのは
負荷がかかってしまうので、sqLで対応したいと考えております
SELECT *,date_format(now(), '%Y.%m.%d') as date FROM tr_attendance
LEFT JOIN m_staff on m_staff.s_id = tr_attendance.s_id
WHERE a_clock_in_schedule_date
between date_format(now(), '%Y.%m.%d') and date_add(date(now()), interval 6 day)
ORDER BY m_staff.s_id
ORDER BY m_staff.s_id
以下にテーブル情報を載せさせていただきます
```ここに言語を入力
CREATE TABLE `tr_attendance` (
   `a_id` VARCHAR(32) NOT NULL COMMENT '勤怠ID',
   `s_id` VARCHAR(32) NULL DEFAULT NULL COMMENT 'スタッフID',
   `a_clock_in_schedule_date` DATETIME NULL DEFAULT NULL COMMENT '出勤時間',
   `a_clock_out_schedule_date` DATETIME NULL DEFAULT NULL COMMENT '退勤時間',
   `delete_flg` VARCHAR(1) NULL DEFAULT '0' COMMENT '削除フラグ',
   `create_id` VARCHAR(16) NULL DEFAULT NULL COMMENT '作成者ID',
   `create_datetime` DATETIME NULL DEFAULT NULL COMMENT '作成日時',
   `update_id` VARCHAR(16) NULL DEFAULT NULL COMMENT '更新者ID',
   `update_datetime` DATETIME NULL DEFAULT NULL COMMENT '更新日時',
   PRIMARY KEY (`a_id`)
)
COMMENT='勤怠情報'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
```
```ここに言語を入力
CREATE TABLE `m_staff` (
   `s_id` VARCHAR(32) NOT NULL COMMENT 'スタッフID',
   `s_position` VARCHAR(32) NULL DEFAULT NULL COMMENT '役職',
   `s_first_name` VARCHAR(32) NULL DEFAULT NULL COMMENT '姓(漢字)',
   `s_last_name` VARCHAR(32) NULL DEFAULT NULL COMMENT '名(漢字)',
   `s_first_name_kana` VARCHAR(50) NULL DEFAULT NULL COMMENT '姓(かな)',
   `s_last_name_kana` VARCHAR(50) NULL DEFAULT NULL COMMENT '名(かな)',
   `s_import_text` TEXT NULL COMMENT '備考(重要)',
   `s_text` TEXT NULL COMMENT '備考',
   `delete_flg` VARCHAR(1) NULL DEFAULT '0' COMMENT '削除フラグ',
   `create_id` VARCHAR(16) NULL DEFAULT NULL COMMENT '作成者ID',
   `create_datetime` DATETIME NULL DEFAULT NULL COMMENT '作成日時',
   `update_id` VARCHAR(16) NULL DEFAULT NULL COMMENT '更新者ID',
   `update_datetime` DATETIME NULL DEFAULT NULL COMMENT '更新日時',
   PRIMARY KEY (`s_id`)
)
COMMENT='スタッフ情報'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
```
  • MySQL

    11255 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る