SELECT con IN

19/05/2006 - 17:29 por mickro | Informe spam
Hola, tengo 3 tablas

tblVentas
IDVenta (int)(key)
Fecha (datetime)

tblPagos
IDVenta (int) (key)
IDPago (int) (key)
IDCliente (int)
Efectivo (money)
Tarjeta (money)
Modo (varchar)

tblClientes
IDCliente (int) (key)
RazonSocial (varchar)

Por ejemplo tengo estos valores

tblVentas

IDVenta Fecha
30 19/05/2006


tblPagos

IDVenta IDPago IDCliente Monto Modo
30 41 12 4,50 Mutual
30 42 12 5,00 Mutual
30 43 12 3,00 Mutual
30 44 12 1,00 Efectivo


tblClientes

IDCliente RazonSocial
12 Dario Ustares

Ahora lo que yo quiero es conseguir este resultado

Fecha IDCliente RazonSocial Monto
19/05/2006 12 Dario Ustares 4,50
19/05/2006 12 Dario Ustares 5,00
19/05/2006 12 Dario Ustares 3,00

O sea quiero todos los pagos donde Modo sea igual a Mutual. Intente ir por
este camino:

SELECT * FROM tblClientes WHERE IDCliente IN (SELECT IDCliente FROM tblPagos
WHERE Modo = 'Mutual')

Pero unicamente obtengo un sola fila, o sea la fila del cliente 12, ¿Como
hago para obtener las 3 filas?, los pagos son del mismo cliente pero los
montos son diferentes por eso necesito obtener las 3 filas de los pagos con
Mutual.
Gracias y saludos para toda la comunidad.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
19/05/2006 - 17:53 | Informe spam
Trata:

select v.Fecha, p.IDCliente, c.RazonSocial, p.Monto
from tblVentas as v inner join tblPagos as p on v.IDVenta = p.IDVenta
inner join tblClientes as c on p.IDCliente = c.IDCliente
where p.Modo = 'Mutual'
go


AMB


"mickro" wrote:

Hola, tengo 3 tablas

tblVentas
IDVenta (int)(key)
Fecha (datetime)

tblPagos
IDVenta (int) (key)
IDPago (int) (key)
IDCliente (int)
Efectivo (money)
Tarjeta (money)
Modo (varchar)

tblClientes
IDCliente (int) (key)
RazonSocial (varchar)

Por ejemplo tengo estos valores

tblVentas

IDVenta Fecha
30 19/05/2006


tblPagos

IDVenta IDPago IDCliente Monto Modo
30 41 12 4,50 Mutual
30 42 12 5,00 Mutual
30 43 12 3,00 Mutual
30 44 12 1,00 Efectivo


tblClientes

IDCliente RazonSocial
12 Dario Ustares

Ahora lo que yo quiero es conseguir este resultado

Fecha IDCliente RazonSocial Monto
19/05/2006 12 Dario Ustares 4,50
19/05/2006 12 Dario Ustares 5,00
19/05/2006 12 Dario Ustares 3,00

O sea quiero todos los pagos donde Modo sea igual a Mutual. Intente ir por
este camino:

SELECT * FROM tblClientes WHERE IDCliente IN (SELECT IDCliente FROM tblPagos
WHERE Modo = 'Mutual')

Pero unicamente obtengo un sola fila, o sea la fila del cliente 12, ¿Como
hago para obtener las 3 filas?, los pagos son del mismo cliente pero los
montos son diferentes por eso necesito obtener las 3 filas de los pagos con
Mutual.
Gracias y saludos para toda la comunidad.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida