J'apprécierais vraiment l'aide avec ceci, je suis sérieusement bloqué. Fondamentalement, j'ai une table quiSQL 2005 SELECT CASE <column> déclaration
ressemble à ceci:
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.
Ce que je dois faire est de convertir les valeurs dans ce tableau à une table qui ne contient que les
chiffres correspondants pour les jours la semaine, par exemple, 1 pour dimanche, 2 pour lundi, 3 pour mardi, etc., tout le chemin jusqu'à 8 pour dimanche.
SO Je possède ce peu de 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
Ce qui fonctionne bien pour certains jours, SAUF combinaisons de jour. Donc, dans ce cas, quand je passe en
28 (mer), 41 (ven), et 44 (SaSun), je reçois 4 (parfait), 6 (parfait), et 17 (oh merde - devrait être
1 et 7, séparément).
Quelqu'un peut-il me aider s'il vous plaît restructure mon SQL si je reçois une table contenant 1, 4, 6 et 7 au lieu
de 4, 6, 17?
Il n'est pas approprié de demander que les gens votent ou acceptent votre réponse. –