 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Lun 20 Feb, 2012 5:03 pm Asunto: Ayuda consulta SUM() sobre 2 tablas |
|
|
Como puedo hacer una consulta para que me sume los valores obtenidos en 2 consultas con la clausula GROPU BY, he desistido de intentarlo pero no lo consigo.
CONSUTAS IMPLICADAS:
| Código: |
1.
SELECT CODHISTARTICULOS, FAMILIA, DESCRIPCION, SUM(UNIDADES) AS CANTIDAD
FROM TIQUETS_DET, HISTORICOARTICULOS
WHERE COD_ARTICULO = CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, FAMILIA, DESCRIPCION;
2.
SELECT CODHISTARTICULOS, FAMILIA, DESCRIPCION, SUM(CANTARTICULOS) AS CANTIDAD
FROM DETALLESCOMANDA, HISTORICOARTICULOS
WHERE CODHISTORICO = CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, FAMILIA, DESCRIPCION; |
En ambas consultas existe una tercera tabla que guarda la descripciones de los codigos(CODHISTORICO, COD_ARTICULO) y cuyo campo clave es:CODHISTARTICULOS
he probado esto y no funciona
| Código: |
SELECT CODHISTARTICULOS, FAMILIA, DESCRIPCION, SUM(UNIDADES) +
(SELECT SUM(CANTARTICULOS)
FROM DETALLESCOMANDA, TIQUETS_DET
GROUP BY CODHISTORICO)
FROM DETALLESCOMANDA, TIQUETS_DET, HISTORICOARTICULOS
WHERE COD_ARTICULO = CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, FAMILIA, DESCRIPCION;
esto tampoco funciona:
SELECT FAMILIA, DESCRIPCION, CODHISTARTICULOS,
((SELECT SUM(UNIDADES) FROM TIQUETS_DET GROUP BY COD_ARTICULO) +
(SELECT SUM(CANTARTICULOS) FROM DETALLESCOMANDA GROUP BY CODHISTORICO)) AS OLA
FROM HISTORICOARTICULOS
GROUP BY FAMILIA, DESCRIPCION, CODHISTARTICULOS;
|
Con la UNION de las tablas obtengo los resultados pero tengo duplicidades con el campo CODHITARTICULOS, es decir no obtengo una AGRUPACIÓN correcta de las dos tablas:
| Código: |
SELECT CODHISTARTICULOS, DESCRIPCION, SUM(UNIDADES)
FROM TIQUETS_DET, HISTORICOARTICULOS
WHERE COD_ARTICULO = CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, DESCRIPCION
UNION ALL
SELECT CODHISTARTICULOS, DESCRIPCION, SUM(CANTARTICULOS)
FROM DETALLESCOMANDA, HISTORICOARTICULOS
WHERE CODHISTORICO = CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, DESCRIPCION; |
_________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 23 Feb, 2012 10:25 am Asunto: |
|
|
Prueba en el segundo código que has puesto con SELECT DISTINCT. Además te falta identificar de que tabla sale cada campo. Por ejemplo:
| Código: | SELECT DISTINCT A.CODHISTARTICULOS, A.FAMILIA, A.DESCRIPCION, SUM(A.UNIDADES) SUMUNI, SUM(B.CANARTICULOS) SUMCAN
FROM DETALLESCOMANDA A, TIQUETS_DET B
WHERE B.COD_ARTICULO = A.CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, FAMILIA, DESCRIPCION |
Sin saber de que campo es cada tabla, prueba una cosa así o indca que campo se de cada tabla. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Sab 25 Feb, 2012 7:01 pm Asunto: |
|
|
NO.
Lo que busco es el resultado de la ultima consulta y agrupados por suma de cantidades sin tener repetido ningun registro de codigo y descripcion.
Lo he SOLUCIONADO creando dicha consulta en un procedimiento almacenado y luego haciendo un SELECT AGRUPADO de dicho procedimiento.
Así quedo, y el resultado es perfecto: | Código: |
/*Primero creo el procedimiento en el servidor*/
CREATE PROCEDURE AGRUPADO
RETURNS (
CODIGO INTEGER,
FAMILIA VARCHAR (10) CHARACTER SET NONE,
DESCRIPCION VARCHAR (106) CHARACTER SET NONE,
CANTIDAD INTEGER)
ASBEGIN
/* Procedure body */
FOR SELECT CODHISTARTICULOS, FAMILIA, DESCRIPCION, SUM(UNIDADES) AS CANTIDAD
FROM TIQUETS_DET, HISTORICOARTICULOS
WHERE COD_ARTICULO = CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, FAMILIA, DESCRIPCION
UNION ALL
SELECT CODHISTARTICULOS, FAMILIA, DESCRIPCION, SUM(CANTARTICULOS) AS CANTIDAD
FROM DETALLESCOMANDA, HISTORICOARTICULOS
WHERE CODHISTORICO = CODHISTARTICULOS
GROUP BY CODHISTARTICULOS, FAMILIA, DESCRIPCION
INTO :CODIGO, :FAMILIA, :DESCRIPCION, :CANTIDAD
DO SUSPEND;
END |
Luego puedo hacer consultas agrupadas como: | Código: |
SELECT CODIGO, FAMILIA, DESCRIPCION, SUM(CANTIDAD) AS CANTIDAD
FROM AGRUPADO
GROUP BY CODIGO, FAMILIA, DESCRIPCION ORDER BY CODIGO; |
_________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|