0

これは非常に奇妙な状況ですが、2 つの select ステートメントを結合する方法を理解する必要があります。「ファイルキー」(従業員識別子) のリストを返す 2 つの select ステートメントがあります。重複があってもなくてもかまいませんが、私には関係ありません。

通常、whereステートメントの内容を調整するだけですが、それを機能させることができないため、おそらくそれが答えです。これが(非常に基本的なバージョンの)何が起こっているかです

select yt.filekey from EMPLOYEES yt
inner join (
select filekey, SUM(hours) as test 
from PAYDESHIST 
where WG2 = 1
and eventdate between (date1) and (date2)
group by filekey having SUM(hours) > 40)
ss on yt.FILEKEY = ss.FILEKEY

これらの別の日付の 2 番目のものがあります。

基本的に、従業員が 2 週間のうち 1 週間以上で 40 時間以上働いたかどうかを確認する必要があります。従業員が両方の週に 40 時間以上働いていても問題ありません。後ですべてが 1 つのリストにフィルターされます。

私は完全な参加を試みましたが、そのうちの 1 週間で 40 時間以上働いたすべての従業員に対して null を取得しました。

助けてください!ありがとう

また、コードにいくつかのエラーがある可能性がありますが、それは問題ではありません。エラーは、実際の呼び出しがそれらの日付を取得するのにはるかに長く、あらゆる種類のクレイジーなものがあるためです。括弧か何か。

4

1 に答える 1

0

答えは次のようになります。

select yt.filekey from EMPLOYEES yt
inner join (
    select filekey, test from (
        select filekey, SUM(hours) as test 
        from PAYDESHIST 
        where WG2 = 1
        and eventdate between (date1) and (date2)
        group by filekey having SUM(hours) > 40)
        ss on yt.FILEKEY = ss.FILEKEY)
        union all
        select filekey, SUM(hours) as test 
        from PAYDESHIST 
        where WG2 = 1
        and eventdate between (date3) and (date4)
        group by filekey having SUM(hours) > 40)
        ss on yt.FILEKEY = ss.FILEKEY)
    )
)

コメントの議論に基づく

于 2013-02-07T05:40:37.537 に答える