Más de fechas

27/05/2008 - 10:40 por Alhambra Eidos Kiquenet | Informe spam
Hola a todos,

tengo una consulta donde en la parte where tengoalgo así:

where...

(V_INF_FORECAST.MESPOSIBLEACEPPRESU >= DATEPART(Month, '26/05/2008'))
AND (V_INF_FORECAST.MESPOSIBLEACEPPRESU <= DATEPART(Month, DATEADD(month, 2,
'26/05/2008')) )

AND (V_INF_FORECAST.ANOPOSIBLEACEPPRESU = DATEPART(Year, '26/05/2008'))


La cuestióne s que se quieren datos del mes actual, mes actual + 1 y mes
actual + 2 (el mes actual y los dos siguientes).
El problema es que se tienen campos separados para el mes y el año, y el
cambio de año, si estoy en diciembre, tendría diciembre (12), enero (1)
febrero (2). Siendo así, teniendo

(V_INF_FORECAST.MESPOSIBLEACEPPRESU >= 12)
AND (V_INF_FORECAST.MESPOSIBLEACEPPRESU <= 2 )
no funcionaria.

Cómo podría expresar la condición where ??

Gracias de antemano.

http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Preguntas similare

Leer las respuestas

#1 Miguel Egea
27/05/2008 - 11:48 | Informe spam
¿has guardado por separado año y mes? ¿tienes la fecha en algun otro campo?
¿es SQL 2000 o 2005?

Saludos

"Alhambra Eidos Kiquenet"
wrote in message news:
Hola a todos,

tengo una consulta donde en la parte where tengoalgo así:

where...

(V_INF_FORECAST.MESPOSIBLEACEPPRESU >= DATEPART(Month, '26/05/2008'))
AND (V_INF_FORECAST.MESPOSIBLEACEPPRESU <= DATEPART(Month, DATEADD(month,
2,
'26/05/2008')) )

AND (V_INF_FORECAST.ANOPOSIBLEACEPPRESU = DATEPART(Year, '26/05/2008'))


La cuestióne s que se quieren datos del mes actual, mes actual + 1 y mes
actual + 2 (el mes actual y los dos siguientes).
El problema es que se tienen campos separados para el mes y el año, y el
cambio de año, si estoy en diciembre, tendría diciembre (12), enero (1)
febrero (2). Siendo así, teniendo

(V_INF_FORECAST.MESPOSIBLEACEPPRESU >= 12)
AND (V_INF_FORECAST.MESPOSIBLEACEPPRESU <= 2 )
no funcionaria.

Cómo podría expresar la condición where ??

Gracias de antemano.

http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Respuesta Responder a este mensaje
#2 Alhambra Eidos Kiquenet
27/05/2008 - 11:56 | Informe spam
HOla Miguel, la bbdd es Sql server 2005 y tienen guardado por separado mes y
año, la fecha no está en la tabla, solo interesa mes y año.

Saludos y gracias.
Respuesta Responder a este mensaje
#3 Miguel Egea
27/05/2008 - 12:22 | Informe spam
Create un campo calculado que sea Año*100+mes, crea un índice sobre ese
campo y lo tendrás resuelto, de la otra forma, haciendo mes y año por
separado se puede, pero son tal cantidad de and y ors con lógica demasiado
compleja ¿verdad?

Saludos
Miguel Egea
"Alhambra Eidos Kiquenet"
wrote in message news:
HOla Miguel, la bbdd es Sql server 2005 y tienen guardado por separado mes
y
año, la fecha no está en la tabla, solo interesa mes y año.

Saludos y gracias.
Respuesta Responder a este mensaje
#4 Alhambra Eidos Kiquenet
27/05/2008 - 12:37 | Informe spam
Create un campo calculado que sea Año*100+mes, crea un índice sobre ese
campo y lo tendrás resuelto, de la otra forma, haciendo mes y año por
separado se puede, pero son tal cantidad de and y ors con lógica demasiado
compleja ¿verdad?



El problema que no tengo acceso ala BBDD, la consulta es para un informe.

Meteré en el where condiciones del tipo yyyymm <= yyyymm2 and yyyymm >=
yyyymm1,

AND (CAST (V_INF_FORECAST.ANOPOSIBLEACEPPRESU AS VARCHAR) +
RIGHT ('0' + CAST (V_INF_FORECAST.MESPOSIBLEACEPPRESU AS VARCHAR), 2)
)
<=
(
CAST (DATEPART(Year, DATEADD(month, 2, '26/11/2007')) AS VARCHAR) +
RIGHT ('0' + CAST (DATEPART(Month, DATEADD(month, 2, '26/11/2007')) AS
VARCHAR), 2)
)

algo asi,

saludos y gracias
Respuesta Responder a este mensaje
#5 Miguel Egea
27/05/2008 - 12:49 | Informe spam
Eso te puede destrozar el rendimiento, ya nos cuentas

Saludos
Miguel Egea
"Alhambra Eidos Kiquenet"
wrote in message news:
Create un campo calculado que sea Año*100+mes, crea un índice sobre ese
campo y lo tendrás resuelto, de la otra forma, haciendo mes y año por
separado se puede, pero son tal cantidad de and y ors con lógica
demasiado
compleja ¿verdad?



El problema que no tengo acceso ala BBDD, la consulta es para un informe.

Meteré en el where condiciones del tipo yyyymm <= yyyymm2 and yyyymm >> yyyymm1,

AND (CAST (V_INF_FORECAST.ANOPOSIBLEACEPPRESU AS VARCHAR) +
RIGHT ('0' + CAST (V_INF_FORECAST.MESPOSIBLEACEPPRESU AS VARCHAR), 2)
)
<> (
CAST (DATEPART(Year, DATEADD(month, 2, '26/11/2007')) AS VARCHAR) +
RIGHT ('0' + CAST (DATEPART(Month, DATEADD(month, 2, '26/11/2007')) AS
VARCHAR), 2)
)

algo asi,

saludos y gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida