Duda urgente crystal Report

Esta duda es sobre las tablas, tengo unas sumas condicionadas de una tabla y me salen bien los resultados

Pero al agregar otra suma de otra tabla me modifica los datos, como si me los duplicara o bucleara al agregar de otra tabla

Como puedo evitar eso?

Pues ni idea chico.

Con tan poca información o con dos imágenes, resulta prácticamente imposible decirte que puede estar pasando.

Si quieres que te aportemos algo deberíamos tener más información al respecto.

1 me gusta

Mira te explico tengo una tabla con estos datos

y la suma que hago es por grupo de articulo son principales, auxiliares, miscelaneos, gastos y mano de obra, eso me sale bien ya que esta todo en la tabla @presupuesto_det, pero necesito hacer una grafica con esos datos y compararlos contra las ordenes de fabricacion, los datos de precios y cantidades de cada orden como por ejemplo en este caso es la 4 y la 7 estan en varias tablas para lo cual ya hice el query ya que estan en 3 tablas y se ligan a una cuarta para la Orden de Fabricacion, al hacer el vinculo con el query queda bien algo asi

Presupuesto ENC es los proyectos, Presupuesto_Det es la tabla que puse arriba y IGE1 es donde tengo la informacion de las ordenes de fabricacion de donde tengo que sacar las sumas que me faltan por cada tipo principal auxiliar miscelaneo gasto o mano de obra para compararlo contra lo proyectado pero me pasa lo de la primera imagen que puse se hace una redundancia ciclica, no se si me explique un poco mas para ver mi error o como poder hacer el reporte en crystal lo que si es que los hago por separado y me salen bien en dos reportes diferentes el error es cuando ya los trato de juntar y hacer la comparativa del grafico uno a uno

Ampliando un poco la informacion ya simplifique todo en solo dos tablas, lo que se desea es sacar el total de las cuentas 162(Principales), 164(Auxiliares), 167(Miscelaneos), GTO(Gastos) y MOD(Mano de Obra Directa)

Lo Proyectado o partida presupuestaria lo saco con este query

SELECT T0.DocEntry,T0.[U_Proyecto], T0.[U_DescripProyecto], T1.[U_Monto], T1.[U_OF], T1.[U_GpoArticulo] 
FROM [dbo].[@PRESUPUESTO_ENC]  T0
INNER JOIN [dbo].[@PRESUPUESTO_DET]  T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.[U_OF] >0 and  T1.[U_GpoArticulo] <> ''
ORDER BY U_PROYECTO, U_OF, U_GpoArticulo

Y las Ordenes de Fabricacion con este otro

SELECT Total=(Price*Quantity), CodGrupo = CAST(T1.[ResType] AS char) , T0.BaseEntry
FROM IGE1 T0
INNER JOIN ORSC T1 ON T0.[ItemCode] = T1.[VisResCode]

UNION ALL
 
SELECT Total=(Price*Quantity),CodGrupo = CAST(T1.[ItmsGrpCod] AS char), T0.BaseEntry
FROM IGE1 T0
INNER JOIN OITM T1 ON T0.[ItemCode] = T1.[ItemCode]
WHERE T1.[ItmsGrpCod] = 162 OR T1.[ItmsGrpCod] =164 OR T1.[ItmsGrpCod] = 167

ORDER BY T0.BaseEntry, CodGrupo

Lo cual me arroja las siguientes tablas, pero al relacionarlas en crystal necesito solo tome de la primera que es la OF 4 una sola vez para yo sacar la suma pero lo toma las X veces que me dio el resultado de la primer tabla como puedo hacer que solo tome 1 ves la OF y poder sacar correctamente los resultados? ya tengo ciclado casi dos semanas con esto :’(, los totales se usaran en una grafica para comparar lo proyectado contra la orden de facturacion

Debo estar muy espeso, que no logro entender el resultado final.

Pero vamos a ver, si en crystal en el informe, le creas el grupo 1 (ordenes de fabricación) y el grupo 2 (grupos de artículos), luego le haces un resumen a todos los níveles tendrías las sumas totales por orden de fabricación y luego las sumas totales por grupos de artículos. Ocultas los detalles y te quedas solo con el resultado de los grupos.

Para la segunda tabla, tendrías que insertar un subinforme en el primero y que el dato de filtrado o ejecución sea por el grupo 1 de orden de fabricacilon o la ejecución tendría que ser por fechas??

Para intentar entenderlo:
si coges de la tabla inv1 y la relacionas con oinv salen todas las facturas de venta.
para obtener un subtotal por grupo de artículos, necesitas ir a la tabla oitm que tiene el dato código de grupo.
bien.
Con esa información en crystal reports, añades grupo1 para el código de artículo y luego resument a nivel de grupo1 y ya tienes los totales por grupo de artículo.
Si previamente quieres un total por factura, grupo1 sería el numero de documento y grupo 2 sería el grupo de artículos y tendrías el total por cada uno además del total del informe.

@fernando_cort, te sugiero que busques en Internet o Youtube cualquier tutorial basico de consultas SQL SERVER, para que asi aprendas sobre las caracteristicas fundamentales de la sentecia SELECT. Para llegar al resultado que necesitas, requieres de funciones de agregado y agrupamiento.

Segun lo que entiendo te refieres a hacer algo asi para la primera consulta:

    SELECT SUM(Price*Quantity) as Total, CodGrupo = CAST(T1.[ResType] AS char) , T0.BaseEntry
    FROM IGE1 T0
    INNER JOIN ORSC T1 ON T0.[ItemCode] = T1.[VisResCode]
    GROUP BY  T0.BaseEntry, T1.[ResType]

    UNION ALL
     
    SELECT SUM(Price*Quantity) as Total,CodGrupo = CAST(T1.[ItmsGrpCod] AS char), T0.BaseEntry
    FROM IGE1 T0
    INNER JOIN OITM T1 ON T0.[ItemCode] = T1.[ItemCode]
    WHERE T1.[ItmsGrpCod] = 162 OR T1.[ItmsGrpCod] =164 OR T1.[ItmsGrpCod] = 167
    GROUP BY T0.BaseEntry,T1.[ItmsGrpCod]

    ORDER BY T0.BaseEntry, CodGrupo

En la segunda Consulta tambien deberias aplicar el SUM y el GROUP BY , pero te lo dejo de tarea jejeje…

Saludos!

2 Me gusta

Con la forma de los grupos me funcionaba con una sola tabla al agregar la segunda se me multiplicaba los valores

Exactamente estaba buscando algo asi Gabriel pero no me funcionaba el grop by deja checar tu codigo que es exactamente loq eu requiero tanto en la tabla de la partida presupuestaria como en la de las ordenes de fabricacion si tienes algo de material relacionado te lo agradeceria mucho, una duda mas al agregar datos de las dos tablas no se me repetiran? ya que tendria que usar un grupo para que cambiara de pagina o deja intentar y si surge algun problema te molesto de nuevo gabriel, muchas gracias

Actualizacion: ya pude hacer el grupo de lo proyectado ya pude entender mi error en el order bye, yo pensaba sap no lo permitia pero era que tenia que indicar el campo de la tabla se agregara en el select al usarlo en el group by, me queda el query asi

SELECT T0.[U_Proyecto] , T0.[U_DescripProyecto], T1.[U_OF], T1.[U_GpoArticulo],  SUM(T1.[U_Monto]) AS TOTAL
FROM [dbo].[@PRESUPUESTO_ENC]  T0
INNER JOIN [dbo].[@PRESUPUESTO_DET]  T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.[U_OF] >0 and  T1.[U_GpoArticulo] <> ''
GROUP BY T1.[U_OF], T1.[U_GpoArticulo], T0.[U_DescripProyecto], T0.[U_Proyecto]
ORDER BY  T0.[U_Proyecto], T1.[U_OF], T1.[U_GpoArticulo]

y el resultado de la tabla me queda ya correcto asi, ya con eso puedo hacer la grafica espero no atorarme en algo mas muchas gracias gabriel que ya estaba ciclado

Código de Proyecto	Descripción de Proyecto	Orden de Fabricación	Grupo de Artículo	TOTAL	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	4	162	15,142.3900	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	4	164	4,567.8500	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	4	167	902.7900	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	4	GTO	1,722.8600	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	4	MOD	1,809.1900	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	7	162	12,053.2400	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	7	164	17,953.5600	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	7	167	532.9000	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	7	GTO	1,300.3600	
OP16002	OP16002 AMPLIACIÓN DEL SISTEMA EXISTENTE GE-HARRIS S.E. PRIMERO DE MAYO (SESELEC)	7	MOD	25,677.0800	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	4	162	3,493.4300	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	4	164	164.0000	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	4	167	292.8100	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	4	GTO	54.3500	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	4	MOD	635.8700	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	6	162	3,748.0500	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	6	164	164.0000	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	6	167	38.1900	
OS16002	OS16002 SISTEMA DE VARIADOR 75 HP (EQUIPO JEREZ)	6	MOD	635.8700
1 me gusta