Cabanyaler
03-08-2006, 10:21:26
Hola compañeros.
Estoy intentando implementar una consulta SQL un tanto sencilla, pero que no logro a pesar de ver la ayuda del Transac_SQL.
Expongo:Tengo dos tablas, una maestra con cabeceras y otra esclava con las líneas de detalle.
La tabla de cabeceras se puede entender en este caso como si fuesen facturas, y la de líneas de detalle como las líneas de factura, p.e.
Así pues, con la consulta que expongo a continuación obtengo todas las líneas de facturas agrupadas por el codigo de artículo.
/* Retorna totes les unitats de les valoracions economiques de totes les certificacions agrupades per còdig d'unitat*/
CREATE PROCEDURE ADOSP_Unidades_Anuales
/* Parametres */
@NumCen_sp varchar(3), @FecIni_sp datetime, @FecFin_sp datetime
AS
SELECT DISTINCT
CabVal_Gesa.CodAut_CabVal, CabVal_Gesa.NumCen_CabVal, CabVal_Gesa.FecCer_CabVal,
LinVal_Gesa.Codigo_LinVal, LinVal_Gesa.CodUni_LinVal, LinVal_Gesa.NumUni_LinVal, LinVal_Gesa.DesUni_LinVal, LinVal_Gesa.MatEuros_LinVal, LinVal_Gesa.ManEuros_LinVal
FROM
CabVal_Gesa
/* Unisc per C.Aj */
LEFT OUTER JOIN LinVal_Gesa
ON CabVal_Gesa.CodAut_CabVal = LinVal_Gesa.Codigo_LinVal
WHERE
(
(CabVal_Gesa.NumCen_CabVal LIKE '%' + @NumCen_sp + '%' )
AND (CabVal_Gesa.FecCer_CabVal >= @FecIni_sp AND CabVal_Gesa.FecCer_CabVal <= @FecFin_sp)
)
ORDER BY LinVal_Gesa.CodUni_LinVal
GO
Lo que me gustaría obtener es: en lugar de todas las líneas de todas las facturas agrupadas por el código de artículo de las mismas, desearía obtener todos los artículos que se han facturado en líneas de las facturas acumulando los totales de los mismos en una sóla linea por cada uno de los artículos.
Algo así (resumiendo en número de columnas respecto del código anexo original):
ARTICULO TOTAL UNI.FACTURADAS AÑO PRECIO TOTAL
--------------------------------------------------------------------------
A 10 5 50
B 20 10 200
C 100 20 200
Si me podeis ayudar....., gracias.
Estoy intentando implementar una consulta SQL un tanto sencilla, pero que no logro a pesar de ver la ayuda del Transac_SQL.
Expongo:Tengo dos tablas, una maestra con cabeceras y otra esclava con las líneas de detalle.
La tabla de cabeceras se puede entender en este caso como si fuesen facturas, y la de líneas de detalle como las líneas de factura, p.e.
Así pues, con la consulta que expongo a continuación obtengo todas las líneas de facturas agrupadas por el codigo de artículo.
/* Retorna totes les unitats de les valoracions economiques de totes les certificacions agrupades per còdig d'unitat*/
CREATE PROCEDURE ADOSP_Unidades_Anuales
/* Parametres */
@NumCen_sp varchar(3), @FecIni_sp datetime, @FecFin_sp datetime
AS
SELECT DISTINCT
CabVal_Gesa.CodAut_CabVal, CabVal_Gesa.NumCen_CabVal, CabVal_Gesa.FecCer_CabVal,
LinVal_Gesa.Codigo_LinVal, LinVal_Gesa.CodUni_LinVal, LinVal_Gesa.NumUni_LinVal, LinVal_Gesa.DesUni_LinVal, LinVal_Gesa.MatEuros_LinVal, LinVal_Gesa.ManEuros_LinVal
FROM
CabVal_Gesa
/* Unisc per C.Aj */
LEFT OUTER JOIN LinVal_Gesa
ON CabVal_Gesa.CodAut_CabVal = LinVal_Gesa.Codigo_LinVal
WHERE
(
(CabVal_Gesa.NumCen_CabVal LIKE '%' + @NumCen_sp + '%' )
AND (CabVal_Gesa.FecCer_CabVal >= @FecIni_sp AND CabVal_Gesa.FecCer_CabVal <= @FecFin_sp)
)
ORDER BY LinVal_Gesa.CodUni_LinVal
GO
Lo que me gustaría obtener es: en lugar de todas las líneas de todas las facturas agrupadas por el código de artículo de las mismas, desearía obtener todos los artículos que se han facturado en líneas de las facturas acumulando los totales de los mismos en una sóla linea por cada uno de los artículos.
Algo así (resumiendo en número de columnas respecto del código anexo original):
ARTICULO TOTAL UNI.FACTURADAS AÑO PRECIO TOTAL
--------------------------------------------------------------------------
A 10 5 50
B 20 10 200
C 100 20 200
Si me podeis ayudar....., gracias.