Puis-je effectuer des opérations WHERE sur un champ de date calculé?Opérations sur un champ de date calculée
J'ai un champ de recherche, qui a été mal écrit en SQL et malheureusement je ne peux pas le changer. Mais fondamentalement, il stocke les dates comme des caractères tels que "Juillet-2010" ou "Juin-2009" (avec d'autres données non-date). Je veux d'abord extraire les dates (ce que j'ai fait en utilisant un opérateur LIKE), puis extraire les données en fonction d'une plage de dates.
SELECT
BusinessUnit,
Lookup,
ReleaseDate
FROM
(
SELECT TOP 10
LookupColumn As Lookup,
BU as BusinessUnit,
CONVERT(DATETIME, REPLACE(LookupColumn,'-',' ')) as ReleaseDate
FROM
[dbo].[LookupTable]
WHERE
LookupColumn LIKE N'%-2010'
) MyTable
ORDER BY ReleaseDate
WHERE ReleaseDate = '2010-02-01'
Je rencontre des problèmes avec l'opérateur WHERE. Je suppose que la création d'une sous-requête pour encapsuler le champ calculé me permettrait de faire des opérations avec elle, comme par exemple WHERE, mais peut-être que je me trompe. Bottom line est-il possible de faire des opérations sur des champs calculés? MISE À JOUR: en effet, j'ai eu la commande mélangée et en outre l'opérateur LIKE retournait également des valeurs non-date telles que TBD-2010 qui me perturbaient.
De quels "problèmes" avez-vous besoin? –