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

sentencia en sql

Estas en el tema de sentencia en sql en el foro de Mysql en Foros del Web. amigos estoy haciendo una vista cruzada con 3 tablas pagos,clientes,ventas quiero que me salgan todos los pagos que se han registrado aun si no hay ...
  #1 (permalink)  
Antiguo 13/01/2011, 16:59
 
Fecha de Ingreso: septiembre-2009
Mensajes: 135
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta sentencia en sql

amigos estoy haciendo una vista cruzada con 3 tablas pagos,clientes,ventas quiero que me salgan todos los pagos que se han registrado aun si no hay ventas, mi negocio es bien dificil puede haber un pago sin necesidad de tener una venta, entonces mi reporte deberia quedar asi?

Cedula,nombre cliente,articulo vendido,valor de pago

cedula y valor pago lo saco de la tabla pagos
nombre cliente de clientes
articulo vendido de ventas todos tienen cedula en las tablas como item de enganche, pero como hago que aparezcan todos los pagos aun no teniendo un articulo de venta?

Muchas Gracias
  #2 (permalink)  
Antiguo 14/01/2011, 02:53
 
Fecha de Ingreso: noviembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: sentencia en sql

Podés hacer de ponerle un valor predeterminado a los campos:
articulo vendido,valor de pago

Y llamar todo los datos normalmente,cuando llames al campo articulo vendido:

IF($row["articulo_vendido"]!="valor predeterminado")
echo "Nombre del articulo vendido";
else echo "Articulo no vendido"; //Lo que quieras

de la misma forma haces con el campo "valordepago".

IF($row["valor_de_pago"]!="valor predeterminado")
echo "Monto del pago";
else echo "Sin pago realizado"; //Lo que quieras
  #3 (permalink)  
Antiguo 14/01/2011, 03:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: sentencia en sql

con LEFT JOIN

SELECT p.cedula, c.nombre, IFNULL(v.articulo_vendido, 'sin venta') articulo, p.valor FROM pagos p INNER JOIN
clientes c ON c.idcliente = p.idcliente LEFT JOIN ventas v ON p.cedula = v.cedula

No lo he probado, y tampoco nos dices con qué campos relacionas pagos con cliente. He imaginado que tienes un campo idcliente (PK en clientes y FK en pagos) en ambas tablas. Si la cédula siempre aparece en la tabla pagos, creo que obtendrás lo que quieres.

Etiquetas: mysql-reporte, sql-sentencia
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 01:18.