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

Problema con consulta de ventas y pagos...

Estas en el tema de Problema con consulta de ventas y pagos... en el foro de SQL Server en Foros del Web. Hola amigos tengo el siguiente problema tengo 3 tablas: Clientes {id_Cliente, y demas atributos} Ventas{id_Venta,id_Cliente,fecha,nro_factura,total ,saldada} Deudas{id_Deudas,id_Cliente,id_Ventas,Deudas.fecha ,Deudas.total} de las cuales quiero obtener las Ventas ...
  #1 (permalink)  
Antiguo 13/07/2011, 23:53
Avatar de emilianocepa  
Fecha de Ingreso: mayo-2007
Mensajes: 45
Antigüedad: 17 años, 5 meses
Puntos: 2
Pregunta Problema con consulta de ventas y pagos...

Hola amigos tengo el siguiente problema tengo 3 tablas:

Clientes {id_Cliente, y demas atributos}
Ventas{id_Venta,id_Cliente,fecha,nro_factura,total ,saldada}
Deudas{id_Deudas,id_Cliente,id_Ventas,Deudas.fecha ,Deudas.total}


de las cuales quiero obtener las Ventas que no han sido saldadas (Ventas.saldada=0) y lo que falta para saldar la Venta de la tabla Deudas

en la imagen esta mas claro:
-en la primer tabla esta cargadas todas las ventas

-en la segunda tabla estan cargados los pagos que se realizaron a dicha venta.

-en la tercer tabla estan los datos que nesecito pero como veran el join no queda bien, las unicas filas correctas seria la numero 1 y la numero 3 y las filas 5 y 6 estan completamente mal ya que deberia aparecer una sola vez con el campo "Debe" en 0 y el campo "Haber" en 700 y el campo "Neto" en 700 tambien. Espero se entienda lo que nesecito hacer y me puedan dar una ayuda, gracias¡¡




Código HTML:
select * from Ventas

select * from Deudas

select fecha as 'Fecha',nroFactura as 'Numero Factura',neto-nombre.Haber as 'Debe',nombre.Haber,neto
from
        (select  SUM(Deudas.monto)as 'Haber'
	from Deudas
	Group By id_venta) nombre,Ventas,Clientes
	where    Ventas.id_cliente=Clientes.id_cliente and Ventas.saldada=0   order By nroFactura

Última edición por emilianocepa; 14/07/2011 a las 00:25
  #2 (permalink)  
Antiguo 14/07/2011, 05:20
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Problema con consulta de ventas y pagos...

prueba con lo siguiente :

Código SQL:
Ver original
  1. SELECT
  2.     V.fecha AS [Fecha]
  3.     , V.nroFactura AS [Numero Factura]
  4.     , V.neto-D.Haber AS [Debe]
  5.     , D.Haber AS [Haber]
  6.     , V.neto AS [Neto]
  7. FROM Ventas V
  8. INNER JOIN
  9.     (
  10.     SELECT d.id_venta
  11.         , SUM(d.monto) AS Haber
  12.     FROM  Deudas d
  13.     GROUP BY d.id_venta
  14.     ) D
  15. ON V.id_venta = D.id_venta AND V.saldada=0
  16.  
  17. ORDER BY nroFactura
  #3 (permalink)  
Antiguo 14/07/2011, 12:41
Avatar de emilianocepa  
Fecha de Ingreso: mayo-2007
Mensajes: 45
Antigüedad: 17 años, 5 meses
Puntos: 2
Pregunta Respuesta: Problema con consulta de ventas y pagos...

una duda , si yoo cargo una venta y nno le asigno ningun pago esa deuda tambien deberia salir en la consulta.....
como ves en la imagen las dos filas seleccionadas deberian estar tambien en la tabla del final.


Última edición por emilianocepa; 14/07/2011 a las 13:31 Razón: mal funcionamiento
  #4 (permalink)  
Antiguo 15/07/2011, 01:00
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Problema con consulta de ventas y pagos...

entonces en lugar de "inner join" utiliza "left join" en la consulta, te debe de mostrar las que no tienen deuda.

y modificar esta linea: sum(d.monto) AS Haber
por : sum(isnull(d.monto,0) ) AS Haber

para que no te marque error por donde encuentre nulos.
  #5 (permalink)  
Antiguo 16/07/2011, 14:58
Avatar de emilianocepa  
Fecha de Ingreso: mayo-2007
Mensajes: 45
Antigüedad: 17 años, 5 meses
Puntos: 2
Respuesta: Problema con consulta de ventas y pagos...

muchisimas gracias diste en el clavo , agradezco tu tiempo¡¡¡

Etiquetas: select, tabla, ventas, campos
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 17:25.