SQL - Consulta SQL

 
Vista:

Consulta SQL

Publicado por GS (2 intervenciones) el 22/02/2012 19:17:40
Hola.

Tengo la siguiente consulta SQL que arroja los resultados que preciso.

SELECT Documentos.Codigo, Documentos.Documento, Documentos.AltaMn, Documentos.Asiento, Documentos.FechaBaja, Documentos.FechaAlta, Facturas_Cabezal.TipoDoc
FROM GENIUS.Documentos Documentos, GENIUS.Facturas_Cabezal Facturas_Cabezal
WHERE Documentos.Asiento = Facturas_Cabezal.Asiento AND Documentos.Documento = Facturas_Cabezal.Numero AND Documentos.Codigo = Facturas_Cabezal.Cliente AND ((Documentos.Rubro='211101') AND (Documentos.Codigo='C280') AND (Documentos.FechaAlta>={d '2008-01-01'} And Documentos.FechaAlta<={d '2011-12-31'}))
ORDER BY Documentos.FechaAlta

Ahora quisiera, en otra consulta independiente, obtener una única cifra que represente la suma total de la columna Documentos.AltaMn de la consulta anterior.

¿Cómo sería esta segunda consulta?

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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL

Publicado por leonardo_josue (1173 intervenciones) el 22/02/2012 20:43:38
Hola GS:

En primer lugar, trata de utilizar siempre los JOIN's en lugar de hacer las uniones entre tablas de manera explícita, es decir:

1
2
3
4
5
en lugar de esto
FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo
 
pon esto
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo


Aunque el resultado es el mismo el performance de la consulta mejora bastante y el código queda más "limpio"

Si tienes dudas de cómo funcionan los distintos JOIN's checa esta liga:
http://es.wikipedia.org/wiki/Join

En cuanto a la consulta, puedes probar así:

1
2
3
4
5
6
7
8
9
10
SELECT SUM(Documentos.AltaMn) total
FROM GENIUS.Documentos Documentos, GENIUS.Facturas_Cabezal Facturas_Cabezal
WHERE
Documentos.Asiento = Facturas_Cabezal.Asiento AND
Documentos.Documento = Facturas_Cabezal.Numero AND
Documentos.Codigo = Facturas_Cabezal.Cliente AND
Documentos.Rubro='211101' AND
Documentos.Codigo='C280' AND
Documentos.FechaAlta>={d '2008-01-01'} AND
Documentos.FechaAlta<={d '2011-12-31'}


Los paréntesis no afectan el resultado de la consulta.

Saludos
Leo.
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

Consulta SQL

Publicado por GS (2 intervenciones) el 22/02/2012 21:06:03
Muchas gracias, me ha sido de mucha ayuda.

Estoy trabajando con Microsoft Query, por lo que cambiando un par de detalles al código que me enviaste ya quedó listo.

Tomo en cuenta tus sugerencias.

Gracias nuevamente
Germán
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