1

契約クライアントの詳細を格納する DB があります。ベースが移動したかどうかを毎月確認する必要があります。そのため、先月ホームベースを変更したものを返すクエリを実行しようとしています。

Unix ソケットを介して mySQL phpmyadmin localhost を使用すると、月として '07-2013' が VARCHAR として設定されます。

SELECT crewcode, firstname, surname, homebase,'for' AS 'Date'
FROM  `hours` 
WHERE homebase ...

ここで何が必要かわからない?先月、ホームベースが 06-2013 から 07-2013 に変更されたかどうかを確認する必要があります

助けていただければ幸いです。

4

3 に答える 3

0

同じクエリを結合して、ON 条件を追加してみてください。table1.homebase!=table2.homebase

このクエリが特定の日付のデータを返す場合

SELECT crewcode, firstname, surname, homebase,'for' AS 'Date'
FROM  `hours` 
WHERE homebase ...

次に、試すことができます

SELECT a1.crewcode
FROM
(

SELECT crewcode, firstname, surname, homebase,'for' AS 'Date'
FROM  `hours` 
WHERE homebase ... //data for first month )a1

INNER JOIN
(

SELECT crewcode, firstname, surname, homebase,'for' AS 'Date'
FROM  `hours` 
WHERE homebase ... //data for second month
 )a2
ON a1.crewcode=a2.crewcode AND a1.homebase!=a2.homebase
于 2013-09-06T09:53:15.510 に答える
0

過去 30 日間の変化を探すには:

WHERE mydate > curdate() - interval 30 day

先月の変化を探すには:

WHERE year(mydate) = year(curdate()) and month(mydate) = month(curdate()) - 1
于 2013-09-06T09:33:48.520 に答える
0

興味のある人のための解決策は次のとおりです。

 SELECT A.employee_ID as crewcode,
        A.emp_firstname, 
        emp_lastname, 
        B.base, 
        B.base_for AS  'Date'
   FROM `hs_hr_employee` as A,
        `employee_base_table` as B 
  where B.base_for=(SELECT DATE_FORMAT(STR_TO_DATE( CURDATE( ) , '%Y-%m-%d' ),'%m-%Y')) 
    AND A.emp_number=B.emp_number 
  group by A.employee_ID    
于 2013-09-12T11:11:15.313 に答える