SQL Server - significado de consultas

 
Vista:

significado de consultas

Publicado por fer (1 intervención) el 19/06/2007 15:08:48
Hola, agradecería si me explicaran los siguientes significados:

1) ISNULL(SUM(M.cantidadMovimiento), 0)

2) DATEDIFF(day, C.fechaInicio, C.fechaFin))) * (DATEDIFF(day, C.fechaInicio,

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:significado de consultas

Publicado por Isaias (3308 intervenciones) el 19/06/2007 20:56:35
1.- Sumas el contenido de la columna "cantidadMovimiento", solo en caso de que la suma te de NULL, colocas como valor "0" (CERO)

2.- Le faltan argumentos, DATEDIFF, saca la diferencia entre 2 fechas, en el primer caso DATEDIFF(day, C.fechaInicio, C.fechaFin), obtiene la diferencia en DIAS (day), puedes hacerlo por HORAS, MINUTOS, SEGUNDOS, MESES, AÑOS, TRIMESTRES,SEMANAS, etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:significado de consultas

Publicado por fer (1 intervención) el 19/06/2007 21:50:17
Hola Isaias, gracia por tu respuesta, con respecto a los argumentos son estos, esto es lo que me confunde, si DATEDIFF saca la diferencia porque esto, no entiendo, como la sacaría:

(DATEDIFF(day, C.fechaInicio,
CASE WHEN GETDATE() > C.fechaFin THEN C.fechaFin ELSE GETDATE() END)) AS acumuladoEsperado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:significado de consultas

Publicado por Carlos Reyes (49 intervenciones) el 20/06/2007 22:06:36
2) DATEDIFF(day, C.fechaInicio, C.fechaFin))) * DATEDIFF(day, C.fechaInicio,
CASE WHEN GETDATE() > C.fechaFin THEN C.fechaFin ELSE GETDATE() END)) AS acumuladoEsperado

La primera parte antes de realizar la multiplicacion te obtiene la diferencia en dias de tu fecha inicial en comparacion con tu fecha final.

La segunda parte obtendria la diferencia en dias de tu fecha de inicio con respectoa tu fecha de fin; ademas estas agregando una condicion que te dice que si la fecha del sistema es mayor a tu fecha de fin entonces te mande tu fecha final; si no que te mande la fecha del sistema

luego que te da ambas diferencias las multiplica y te despliega el Resultado en una columna llamada "acumuladoEsperado".

haria algo asi:

Parte 1:
FecInicial(25/06/2006) - FecFinal(26/06/2006) = 1

*

Parte 2:
primero compara que
GetDate(27/06/2006) > FecFinal(26/06/2006)
como la fecha del sistema es mayor a la fecha final pues te envia la fecha final;
si el caso fuera al reves, osea:
GetDate(24/06/2006) > FecFinal(26/06/2006)
entonces te mandaria la fecha del sistema,
para despues comparar la diferencia entre tu fecha Inicial y tu fecha final
y despues multiplicar el resultado por la parte 1

Parte 1 * Parte 2

Espero aclare tu duda

Carlos Reyes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar