0
Date..............Comment1............................Comment2
20041206.....Address change from/to:........616 Barry Road Apt
20050314.....Rehired on Mar 14/05............Rehired on Mar 14/05
20051117.....Terminated on Nov17/05.......Shortage of Work
20060131.....Address change from/to:........616 Barry Road Apt
20060410.....Rehired on Apr 10/06   ............Pay Rate change    
20060419.....Vac. pay owing: from..............changed by 
20060531.....Terminated on May31/06........Quit
20070208.....Address change from/to:........11 Bettley Court
20080921.....Rehired on Sep 21/08............Pay Rate change    <== this row
20080925.....Vac. pay owing:.....................from   
20090215.....Pay Rate change...................0.00
20090712.....Pay Rate change...................0.000

指定されたレコードから Date (20080921) になりたいです。

4

3 に答える 3

1

何かのようなもの

SELECT TOP 1 *
FROM   YourTable
WHERE  Date > (SELECT TOP 1 Date
               FROM   YourTable
               WHERE  ( Comment1 LIKE '%Quit%'
                         OR Comment2 LIKE '%Quit%' )
               ORDER  BY Date DESC)
       AND ( Comment1 LIKE '%Rehired%'
              OR Comment2 LIKE '%Rehired%' )
ORDER  BY Date 
于 2012-06-20T16:54:28.490 に答える
0

少し大雑把ですが、次のとおりです。

SELECT t2.DATE
FROM TABLE t1 INNER JOIN
     TABLE t2 on t1.Date < t2.Date LEFT OUTER JOIN
     TABLE t3 on t1.Date < t3.Date AND t3.Date < t2.Date AND t3.Comment1 LIKE 'Rehired%' LEFT OUTER JOIN
     TABLE t4 on t4.Date > t1.Date and t4.Comment2 = 'Quit'
WHERE t1.Comment2 = 'Quit'
AND t2.Comment1 like 'Rehired%'
AND t3.Date = null
AND t4.Date = null

t1 は退職記録、t2 は再雇用記録です。t3 は、t1 と t2 の間に他の再雇用が発生しないことを保証し、t4 は、t1 の後に他の退職が発生しないことを保証します。したがって、t2 は、最後に退職した後、最初に再雇用された人です。

于 2012-06-20T16:54:44.057 に答える
0

日付形式は扱いにくいかもしれませんが、このようにしてみてください。

declare @LastDate datetime
set @LastDate='2008/09/21'

select date,comment1,comment2 from your table 
where cast(date as datetime)>=@LastDate 
order by date
于 2012-06-21T18:56:07.353 に答える