Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/12/2004, 10:10
Teri
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 9 meses
Puntos: 0
Las SELECT, con excepción de palabras reservadas propias del Access, concretamente el IIF son traducibles perfectamente de access a SQL, para las funciones, hay que buscar el equivalente, en el caso de IIF, debes utilizar CASE, tu ejemplo

SELECT Contrato, Contratista, Fecha_Cierre, [AñoFiscal xxxx] AS AF,

CASE WHEN Month([Fecha_Cierre])>9 THEN Month([Fecha_Cierre])-9
ELSE
Month([Fecha_Cierre])+3 END AS Mes,
CASE WHEN [Mes]=1 THEN 1 ELSE 0 END AS M1Sol, CASE WHEN [Mes]=2 THEN 1 ELSE 0 END AS M2Sol

FROM CONTRATOS

WHERE
(((CASE Month([Fecha_Cierre])>9 THEN 1 ELSE 0 END+Year([Fecha_Cierre]))=[AñoFiscal xxxx]))

Si los almacenas en Procedimientos Almacenados o en vistas, en cualquiera de las dos, el resultado debe ser el mismo, en general los PA son más rápidos y permiten hacer ORDER BY, desde una vista no puedes utilizar en PA, pero sí al reves, podrías utilizar una vista dentro de un PA.

Un saludo