私はタイムシートと呼ばれるテーブルを持っています。
ID Status ProjId ActId Date
1 pending 1 1 2014-aug-07
2 denied 1 2 2014-aug-08
3 saved 1 3 2014-aug-09
4 approved 1 4 2014-aug-10
以下のクエリを使用して、目的の結果を取得しました。
SELECT * from tblTimesheet
WHERE DATEPART(wk,spentDate) = 32 AND ((timesheetstatus = 'Pending' or timesheetstatus = 'Approved') and (timesheetstatus <> 'Saved' or timesheetstatus <> 'Denied'))
上記のクエリの期待される結果は 0 ですが、結果は 1 です。
5 pending 1 1 2014-aug-11
6 pending 1 2 2014-aug-12
7 approved 1 3 2014-aug-13
8 approved 1 4 2014-aug-14
この場合、私のクエリは機能します。
SELECT * from tblTimesheet
WHERE DATEPART(wk,spentDate) = 32 AND ((timesheetstatus = 'Pending' or timesheetstatus = 'Approved') and (timesheetstatus <> 'Saved' or timesheetstatus <> 'Denied'))
上記のクエリの期待される結果は 1 です。結果は 1 です。
mssql で上記の要件のクエリを記述する方法。シナリオ 1 は機能しますが、シナリオ 2 は機能しません。望ましい結果を達成する方法。どんな助けでも大歓迎です!!!