Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda con esta consulta

Estas en el tema de Ayuda con esta consulta en el foro de Mysql en Foros del Web. EStimados, tengo esta consulta, yo necesito que los valores me aparezcan en un solo campo, siendo mas claros, necesito que los valores comunes sean sumados ...
  #1 (permalink)  
Antiguo 11/12/2009, 11:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Ayuda con esta consulta

EStimados, tengo esta consulta, yo necesito que los valores me aparezcan en un solo campo, siendo mas claros, necesito que los valores comunes sean sumados o restados en una misma columna....

Ayuda por favor.

SELECT T0.[DocDate], T0.[CardCode], T1.[CardName], SUM(T0.[DocTotal]) AS TOTAL_VENTA FROM OINV T0 INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode WHERE T0.[DocDate] >=[%0] AND T0.[DocDate] <=[%1] GROUP BY T0.[DocDate], T0.[CardCode], T1.[CardName]

union

SELECT T2.[DocDate], T2.[CardCode], T3.[CardName], SUM(-T2.[DocTotal]) AS TOTAL_VENTA FROM ORIN T2 INNER JOIN OCRD T3 ON T2.CardCode = T3.CardCode WHERE T2.[DocDate] >=[%0] AND T2.[DocDate] <=[%1] GROUP BY T2.[DocDate], T2.[CardCode], T3.[CardName]
  #2 (permalink)  
Antiguo 11/12/2009, 12:31
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con esta consulta

No te entiendo.

Con un ejemplo se podría entender mejor.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 11/12/2009, 13:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda con esta consulta

Esta es la consulta
SELECT T0.[DocDate], T0.[CardCode], T1.[CardName], SUM(T0.[DocTotal]) AS TOTAL_VENTA FROM OINV T0 INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode WHERE T0.[DocDate] >=[%0] AND T0.[DocDate] <=[%1] GROUP BY T0.[DocDate], T0.[CardCode], T1.[CardName]

union

SELECT T2.[DocDate], T2.[CardCode], T3.[CardName], SUM(-T2.[DocTotal]) AS TOTAL_VENTA FROM ORIN T2 INNER JOIN OCRD T3 ON T2.CardCode = T3.CardCode WHERE T2.[DocDate] >=[%0] AND T2.[DocDate] <=[%1] GROUP BY T2.[DocDate], T2.[CardCode], T3.[CardName]

Mi resultado es este:

DocDate CardCode CardName Total_Venta
03/11/2009 88888 Clientes Varios -520
03/11/2009 88888 Clientes Varios 1000

Yo lo que quiero tener como resultado es una sola fila donde me sume o reste los datos.

Espero haberme explicado.

Saludos.
  #4 (permalink)  
Antiguo 11/12/2009, 15:03
danicuco
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con esta consulta

Bueno espero que esto te ayude...

La clausula Union en transact-sql por definicion lo que hace es unir las filas duplicadas en el caso que ambas consulta te dieran el mismo resultado, como verás las tuplas devueltas (registros) no son iguales... casi, pero no lo son , la diferencia estan en el campo [Total_Venta]... con esto tienes que tener cuidado porque imaginate que ese cliente tuviera el mismo valor de total_ventas en ambas tablas (ORIN y OINV)... UNION lo que haria es unir ambos registros porque para el es como si estuviera duplicado... pero no te sumaria el valor que es lo que te interesa, supongo vamos..

Yo probaria algo asi:

Cita:
SELECT
T0.[DocDate],
T0.[CardCode],
T1.[CardName],
(T0.[DocTotal] + T2.[DocTotal]) AS TOTAL_VENTA
FROM OINV T0
INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode
INNER JOIN ORIN T2 ON T2.CardCode = T1.CardCode
WHERE T0.[DocDate] >=[%0] AND T0.[DocDate] <=[%1]
GROUP BY T0.[DocDate], T0.[CardCode], T1.[CardName]
  #5 (permalink)  
Antiguo 11/12/2009, 17:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda con esta consulta

Te agradezco, pero no me ha resuelto el problema aun, para explicarte, en una tabla tengo datos que corresponden a facturacion y la otra tabla tengo datos de devoluciones, lo que estoy tratando es de sumar o restar para un mismo cliente los valores de ambas tablas

Agradecere tu respuesta
  #6 (permalink)  
Antiguo 13/12/2009, 16:26
danicuco
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con esta consulta

Bueno igual no te entendí bien... Si en una tabla tengo Facturacion y en otra Devoluciones... por logica de matematicas financieras a facturacion siempre se le resta devolucion ¿no? jajaj igual estoy perdido...

Suponiendo que OCRD son devoluciones y ORIN son Ingresos bastaria con modificar la consulta de arriba y restar en vez de sumar... esto te va devolver todos los totales de venta de cada cliente, siendo los totales = facturacion - devolucion

Cita:
SELECT
T0.[DocDate],
T0.[CardCode],
T1.[CardName],
( T2.[DocTotal] - T0.[DocTotal]) AS TOTAL_VENTA
FROM OINV T0
INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode
INNER JOIN ORIN T2 ON T2.CardCode = T1.CardCode
WHERE T0.[DocDate] >=[%0] AND T0.[DocDate] <=[%1]
GROUP BY T0.[DocDate], T0.[CardCode], T1.[CardName]
Intento ayudarte pero igual tengo una idea diferente a lo que quieres... si es asi intenta explicar con un ejemplo o algo para entenderlo mejor.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:58.