これについて助けていただければ幸いです。私は真剣に立ち往生しています。基本的に私はテーブルを持っています
次のようになります。
SSS_DOWID Name Mon Tue Wed Thu Fri Sat Sun Description
2 M Y N N N N N N Monday
3 MF Y N N N Y N N Monday, Friday
.......
18 T N Y N N N N N Tuesday
........
etc.
私がする必要があるのは、このテーブルの値を、
対応する曜日の数字。たとえば、日曜日は 1、月曜日は 2、火曜日は 3 など、日曜日は 8 までです。
だから私はこの小さなSQLを持っています:
DECLARE @strDays table
(SSS_DOWID int)
INSERT INTO @strDays
SELECT
case (sun) when 'Y' then '1' else '' end +
case (mon) when 'Y' then '2' else '' end +
case (tue) when 'Y' then '3' else '' end +
case (wed) when 'Y' then '4' else '' end +
case (thu) when 'Y' then '5' else '' end +
case (fri) when 'Y' then '6' else '' end +
case (sat) when 'Y' then '7' else '' end
FROM
[dbo].SSS_DOW WITH (NOLOCK)
WHERE
SSS_DOWID IN (28,41,44)
SELECT * FROM @strDays
日の組み合わせを除いて、個々の日に問題なく機能します。したがって、この場合、私が渡すとき
28 (水)、41 (金)、および 44 (土日)、4 (パーフェクト)、6 (パーフェクト)、および 17 (ああ、くだらない - する必要があります
1 と 7 を別々に)。
代わりに1、4、6、および7を含むテーブルを取得するように、誰かが私のSQLを再構築するのを手伝ってくれますか?
4、6、17の?