sql >> データベース >  >> RDS >> Mysql

2つの日付の間のデータを選択して一部の日を除外する

    多分これから始めてください...

    SELECT p.OperaterID
         , p.OperationID
         , SUM(p.TotalProduced) TotalProduced
         , SUM(p.TotalProducedOperator) TotalProducedOp
         , CASE WHEN DAYOFWEEK(p.startdatetime) IN (1,7) THEN 'Normal working day' ELSE 'Weekend' END DayType
      FROM tblproduction p
     WHERE p.StartDateTime >= '2015-02-01 00:00:00' AND p.StartDateTime <= '2015-02-28 23:59:59'
       AND p.OperaterID = 10
       AND DATE(p.StartDateTime) NOT IN (SELECT HolidayDate FROM tblholidays)
     GROUP 
        BY p.OperaterID
         , p.OperationID
         , CASE WHEN DAYOFWEEK(p.startdatetime) IN (1,7) THEN 'Normal working day' ELSE 'Weekend' END
    



    1. インデックススキャンがはるかに優れたオプションである場合、Postgresはインデックスを使用しません

    2. MySQL COUNT DISTINCT

    3. PostgreSQLでの一括/バッチ更新/アップサート

    4. pg-promiseでのクエリタイムアウト