私は、idフィールドと、5つのフィールド(月曜日から金曜日までの各週の1つで、データ型がビット)を含むテーブルを持っています。私はその日のためにtrueにビットを設定している行を返すようにしようとしている日によってSQL where句論理
+---+--------+---------+-----------+----------+--------+
|id | Monday | Tuesday | Wednesday | Thursday | Friday |
+---+--------+---------+-----------+----------+--------+
| 1 | 1 | 0 | 0 | 0 | 0 |
+---+--------+---------+-----------+----------+--------+
| 2 | 1 | 0 | 0 | 0 | 0 |
+---+--------+---------+-----------+----------+--------+
| 3 | 0 | 0 | 0 | 1 | 0 |
+---+--------+---------+-----------+----------+--------+
| 4 | 1 | 0 | 0 | 0 | 1 |
+---+--------+---------+-----------+----------+--------+
:
テーブルは次のように見えます。私はwhere節でこれを行うことを考えていましたが、動作させることはできません。
私の論理に何か間違っていると思いますが、どんな助けでも大歓迎です!
DECLARE @tDay as INTEGER
SET @tDay = datepart(weekday, getdate())
SELECT id, monday, tuesday, wednesday, thursday, friday
FROM Days
WHERE CASE WHEN @tDay = 2 then @tDay
Else Days.monday
End = 1
AND
CASE WHEN @tDay = 3 then @tDay
Else Days.tuesday
End = 1
希望するサンプルデータとサンプル出力を表示できますか? – Kangkan
1 True False True False True 2 True True True False月が本当ならTrueです。最初の列がTrueの行が返されました。ありがとう! – sooty
投稿を直接編集することができます。 – Kangkan