problema con un select y 2 inner join.

21/10/2005 - 21:37 por Daniel G. Samborski | Informe spam
Hola,
Tengo 3 tablas.
Clientes
Extensionclientes
Ventas

y necesito mostrar una lista similar a la siguiente.

CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡ tipodocext
¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
1 ¡ cliente 1 ¡ dni ¡ 12345677 ¡
¡ ¡ ¡ 18/01/2005 ¡ 1254 ¡
2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion 4
¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡
3 ¡ cliente 3 ¡ dni ¡ 22132312 ¡
¡ ¡ ¡ 12/12/2004 ¡ 1233 ¡

Y utilizo el siguiente store procedure:


select Ventas.CodVen, Cliente.ApellNomb, cliente.TipoDoc,
cliente.nroDoc,
ExtensionClientes.ApeNombre, ExtensionClientes.TipoDoc,
Extensionclientes.nroDoc,
ventas.fecven, convert(varchar,ventas.imptotal)
from ventas
inner join cliente on cliente.CodCli=ventas.CodCli
join extensionclientes on extensionclientes.codext=ventas.codext

y lo que obtengo es lo siguiente.

CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡ tipodocext
¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion 4
¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡

si alguien me puede ayudar para poder obtener lo de arriba.

Les menciono los tipos y que guardan:
Ventas.CodVen(int), Ventas.FecVen(datetime), ventas.imptotal(money)
Cliente.ApellNomb(varchar(50),) cliente.TipoDoc(varchar(50)),
cliente.NroDoc(Varchar(50))
ExtensionCliente.Apenombre(varchar(50)),
extensionCliente,TipoDoc(varchar(50)), extensionCliente.NroDoc(Varchar(50))

Y en la tabla ventas, se guardan entre otros, CodCli y CodExt.
Si la compra la realiza un cliente se guarda CodCli=1 (1=Codigo del cliente)
y en CodExt=0 (La compra la realizo el cliente)
y si la compra la realiza una extension del cliente se guarda CodCli=2
(Codigo del cliente) y CodExt=4 (La compra la realizo la extencion, Codigo
de extension)


Daniel.

Preguntas similare

Leer las respuestas

#1 Maxi \(MVP SQL\)
21/10/2005 - 23:28 | Informe spam
Hola, podes poner el resultado de como queres la lista en un .txt, el mail
lo corta y es muy dificil (por lo menos para mi) leer ;)


-
[MS-MVP SQL SERVER]

"Daniel G. Samborski" escribió en
el mensaje news:%
Hola,
Tengo 3 tablas.
Clientes
Extensionclientes
Ventas

y necesito mostrar una lista similar a la siguiente.

CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
1 ¡ cliente 1 ¡ dni ¡ 12345677 ¡ ¡
¡ ¡ 18/01/2005 ¡ 1254 ¡
2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion 4
¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡
3 ¡ cliente 3 ¡ dni ¡ 22132312 ¡ ¡
¡ ¡ 12/12/2004 ¡ 1233 ¡

Y utilizo el siguiente store procedure:


select Ventas.CodVen, Cliente.ApellNomb, cliente.TipoDoc,
cliente.nroDoc,
ExtensionClientes.ApeNombre, ExtensionClientes.TipoDoc,
Extensionclientes.nroDoc,
ventas.fecven, convert(varchar,ventas.imptotal)
from ventas
inner join cliente on cliente.CodCli=ventas.CodCli
join extensionclientes on extensionclientes.codext=ventas.codext

y lo que obtengo es lo siguiente.

CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion 4
¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡

si alguien me puede ayudar para poder obtener lo de arriba.

Les menciono los tipos y que guardan:
Ventas.CodVen(int), Ventas.FecVen(datetime), ventas.imptotal(money)
Cliente.ApellNomb(varchar(50),) cliente.TipoDoc(varchar(50)),
cliente.NroDoc(Varchar(50))
ExtensionCliente.Apenombre(varchar(50)),
extensionCliente,TipoDoc(varchar(50)),
extensionCliente.NroDoc(Varchar(50))

Y en la tabla ventas, se guardan entre otros, CodCli y CodExt.
Si la compra la realiza un cliente se guarda CodCli=1 (1=Codigo del
cliente) y en CodExt=0 (La compra la realizo el cliente)
y si la compra la realiza una extension del cliente se guarda CodCli=2
(Codigo del cliente) y CodExt=4 (La compra la realizo la extencion, Codigo
de extension)


Daniel.

Respuesta Responder a este mensaje
#2 Daniel G. Samborski
22/10/2005 - 02:40 | Informe spam
Estube pensando en otra solución...Bueno, es una forma de decir.
Cree otra tabla en donde guardare los datos que necesito y luego la elimino.

El problema que tengo es que no se como hacer lo siguiente.

por ejemplo, primero un select de lo que quiero guardar.

select Nombre, direccion from cliente

y luego guardar ese resultado en la tabla con un insert into

insert into LaOtraTabal(CampoNombre, CampoDireccion) value()

Ese es el problema, como hago que el insert me inserte la lista que tiro en
LaOtraTabla.

Ya que si declaro una varaible, en ella me guarda solo el ultimo registro y
no todos.

¿Como se puede hacer esto?

Gracias.

Daniel.


"Maxi (MVP SQL)" escribió en el mensaje
news:%
Hola, podes poner el resultado de como queres la lista en un .txt, el mail
lo corta y es muy dificil (por lo menos para mi) leer ;)


-
[MS-MVP SQL SERVER]

"Daniel G. Samborski" escribió en
el mensaje news:%
Hola,
Tengo 3 tablas.
Clientes
Extensionclientes
Ventas

y necesito mostrar una lista similar a la siguiente.

CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
1 ¡ cliente 1 ¡ dni ¡ 12345677 ¡ ¡ ¡
¡ 18/01/2005 ¡ 1254 ¡
2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion 4
¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡
3 ¡ cliente 3 ¡ dni ¡ 22132312 ¡ ¡ ¡
¡ 12/12/2004 ¡ 1233 ¡

Y utilizo el siguiente store procedure:


select Ventas.CodVen, Cliente.ApellNomb, cliente.TipoDoc,
cliente.nroDoc,
ExtensionClientes.ApeNombre, ExtensionClientes.TipoDoc,
Extensionclientes.nroDoc,
ventas.fecven, convert(varchar,ventas.imptotal)
from ventas
inner join cliente on cliente.CodCli=ventas.CodCli
join extensionclientes on extensionclientes.codext=ventas.codext

y lo que obtengo es lo siguiente.

CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion 4
¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡

si alguien me puede ayudar para poder obtener lo de arriba.

Les menciono los tipos y que guardan:
Ventas.CodVen(int), Ventas.FecVen(datetime), ventas.imptotal(money)
Cliente.ApellNomb(varchar(50),) cliente.TipoDoc(varchar(50)),
cliente.NroDoc(Varchar(50))
ExtensionCliente.Apenombre(varchar(50)),
extensionCliente,TipoDoc(varchar(50)),
extensionCliente.NroDoc(Varchar(50))

Y en la tabla ventas, se guardan entre otros, CodCli y CodExt.
Si la compra la realiza un cliente se guarda CodCli=1 (1=Codigo del
cliente) y en CodExt=0 (La compra la realizo el cliente)
y si la compra la realiza una extension del cliente se guarda CodCli=2
(Codigo del cliente) y CodExt=4 (La compra la realizo la extencion,
Codigo de extension)


Daniel.





Respuesta Responder a este mensaje
#3 Liliana Sorrentino
24/10/2005 - 16:11 | Informe spam
Hola Daniel,
En la consulta que mandaste en el primer post, agregale LEFT a la
combinación con la tabla de Extensiones:

LEFT join extensionclientes on extensionclientes.codext=ventas.codext

Estaba asumiendo INNER porque no especificaste nada, y no devolvía las filas
que no tenían Extensiones.
Liliana.

"Daniel G. Samborski" escribió en
el mensaje news:
Estube pensando en otra solución...Bueno, es una forma de decir.
Cree otra tabla en donde guardare los datos que necesito y luego la


elimino.

El problema que tengo es que no se como hacer lo siguiente.

por ejemplo, primero un select de lo que quiero guardar.

select Nombre, direccion from cliente

y luego guardar ese resultado en la tabla con un insert into

insert into LaOtraTabal(CampoNombre, CampoDireccion) value()

Ese es el problema, como hago que el insert me inserte la lista que tiro


en
LaOtraTabla.

Ya que si declaro una varaible, en ella me guarda solo el ultimo registro


y
no todos.

¿Como se puede hacer esto?

Gracias.

Daniel.


"Maxi (MVP SQL)" escribió en el mensaje
news:%
> Hola, podes poner el resultado de como queres la lista en un .txt, el


mail
> lo corta y es muy dificil (por lo menos para mi) leer ;)
>
>
> -
> [MS-MVP SQL SERVER]
>
> "Daniel G. Samborski" escribió


en
> el mensaje news:%
>> Hola,
>> Tengo 3 tablas.
>> Clientes
>> Extensionclientes
>> Ventas
>>
>> y necesito mostrar una lista similar a la siguiente.
>>
>> CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
>> tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
>> 1 ¡ cliente 1 ¡ dni ¡ 12345677 ¡ ¡ ¡
>> ¡ 18/01/2005 ¡ 1254 ¡
>> 2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion


4
>> ¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡
>> 3 ¡ cliente 3 ¡ dni ¡ 22132312 ¡ ¡ ¡
>> ¡ 12/12/2004 ¡ 1233 ¡
>>
>> Y utilizo el siguiente store procedure:
>>
>>
>> select Ventas.CodVen, Cliente.ApellNomb, cliente.TipoDoc,
>> cliente.nroDoc,
>> ExtensionClientes.ApeNombre, ExtensionClientes.TipoDoc,
>> Extensionclientes.nroDoc,
>> ventas.fecven, convert(varchar,ventas.imptotal)
>> from ventas
>> inner join cliente on cliente.CodCli=ventas.CodCli
>> join extensionclientes on extensionclientes.codext=ventas.codext
>>
>> y lo que obtengo es lo siguiente.
>>
>> CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
>> tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
>> 2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡ extencion


4
>> ¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡
>>
>> si alguien me puede ayudar para poder obtener lo de arriba.
>>
>> Les menciono los tipos y que guardan:
>> Ventas.CodVen(int), Ventas.FecVen(datetime), ventas.imptotal(money)
>> Cliente.ApellNomb(varchar(50),) cliente.TipoDoc(varchar(50)),
>> cliente.NroDoc(Varchar(50))
>> ExtensionCliente.Apenombre(varchar(50)),
>> extensionCliente,TipoDoc(varchar(50)),
>> extensionCliente.NroDoc(Varchar(50))
>>
>> Y en la tabla ventas, se guardan entre otros, CodCli y CodExt.
>> Si la compra la realiza un cliente se guarda CodCli=1 (1=Codigo del
>> cliente) y en CodExt=0 (La compra la realizo el cliente)
>> y si la compra la realiza una extension del cliente se guarda CodCli=2
>> (Codigo del cliente) y CodExt=4 (La compra la realizo la extencion,
>> Codigo de extension)
>>
>>
>> Daniel.
>>
>
>


Respuesta Responder a este mensaje
#4 Daniel G. Samborski
24/10/2005 - 17:33 | Informe spam
Gracias, a vos y todos los que me respondieron.
He obtenido mucha info muy interesante y útil.

Gracias.

Daniel.

"Liliana Sorrentino" escribió en el mensaje
news:
Hola Daniel,
En la consulta que mandaste en el primer post, agregale LEFT a la
combinación con la tabla de Extensiones:

LEFT join extensionclientes on extensionclientes.codext=ventas.codext

Estaba asumiendo INNER porque no especificaste nada, y no devolvía las
filas
que no tenían Extensiones.
Liliana.

"Daniel G. Samborski" escribió en
el mensaje news:
Estube pensando en otra solución...Bueno, es una forma de decir.
Cree otra tabla en donde guardare los datos que necesito y luego la


elimino.

El problema que tengo es que no se como hacer lo siguiente.

por ejemplo, primero un select de lo que quiero guardar.

select Nombre, direccion from cliente

y luego guardar ese resultado en la tabla con un insert into

insert into LaOtraTabal(CampoNombre, CampoDireccion) value()

Ese es el problema, como hago que el insert me inserte la lista que tiro


en
LaOtraTabla.

Ya que si declaro una varaible, en ella me guarda solo el ultimo registro


y
no todos.

¿Como se puede hacer esto?

Gracias.

Daniel.


"Maxi (MVP SQL)" escribió en el mensaje
news:%
> Hola, podes poner el resultado de como queres la lista en un .txt, el


mail
> lo corta y es muy dificil (por lo menos para mi) leer ;)
>
>
> -
> [MS-MVP SQL SERVER]
>
> "Daniel G. Samborski" escribió


en
> el mensaje news:%
>> Hola,
>> Tengo 3 tablas.
>> Clientes
>> Extensionclientes
>> Ventas
>>
>> y necesito mostrar una lista similar a la siguiente.
>>
>> CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
>> tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
>> 1 ¡ cliente 1 ¡ dni ¡ 12345677 ¡ ¡ ¡
>> ¡ 18/01/2005 ¡ 1254 ¡
>> 2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡
>> extencion


4
>> ¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡
>> 3 ¡ cliente 3 ¡ dni ¡ 22132312 ¡ ¡ ¡
>> ¡ 12/12/2004 ¡ 1233 ¡
>>
>> Y utilizo el siguiente store procedure:
>>
>>
>> select Ventas.CodVen, Cliente.ApellNomb, cliente.TipoDoc,
>> cliente.nroDoc,
>> ExtensionClientes.ApeNombre, ExtensionClientes.TipoDoc,
>> Extensionclientes.nroDoc,
>> ventas.fecven, convert(varchar,ventas.imptotal)
>> from ventas
>> inner join cliente on cliente.CodCli=ventas.CodCli
>> join extensionclientes on extensionclientes.codext=ventas.codext
>>
>> y lo que obtengo es lo siguiente.
>>
>> CodVen ¡ NombCliente ¡ topodoc¡ nroDoc ¡ NombExtension ¡
>> tipodocext ¡ nroDocExt ¡ FecVencimiento ¡ Monto ¡
>> 2 ¡ cliente 2 ¡ dni ¡ 45345678 ¡
>> extencion


4
>> ¡ dni ¡ 23444231 ¡ 11/11/2005 ¡ 1324 ¡
>>
>> si alguien me puede ayudar para poder obtener lo de arriba.
>>
>> Les menciono los tipos y que guardan:
>> Ventas.CodVen(int), Ventas.FecVen(datetime), ventas.imptotal(money)
>> Cliente.ApellNomb(varchar(50),) cliente.TipoDoc(varchar(50)),
>> cliente.NroDoc(Varchar(50))
>> ExtensionCliente.Apenombre(varchar(50)),
>> extensionCliente,TipoDoc(varchar(50)),
>> extensionCliente.NroDoc(Varchar(50))
>>
>> Y en la tabla ventas, se guardan entre otros, CodCli y CodExt.
>> Si la compra la realiza un cliente se guarda CodCli=1 (1=Codigo del
>> cliente) y en CodExt=0 (La compra la realizo el cliente)
>> y si la compra la realiza una extension del cliente se guarda CodCli=2
>> (Codigo del cliente) y CodExt=4 (La compra la realizo la extencion,
>> Codigo de extension)
>>
>>
>> Daniel.
>>
>
>






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