Consejo sobre consulta SQL

02/02/2007 - 21:19 por Miguel A. | Informe spam
Necesito una consulta que me estoy volviendo loco para crearla.
Tengo 2 tablas.
Tabla1.
Estado,Producto,Nombre,Direccion,Telefono,CP,Provincia
0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid
0,67,Jaime,Luchana5,91666666,28006,Madrid
0,32,Maria,Alcala58,936336545,08193,Barcelona

Tabla2
CP,Vendedor
28005,Antonio
28567,Antonio
28006,Maria
08193,Jaime

Tengo una vista de tal forma que me falta lo que necesito:

SELECT *
FROM dbo.Tabla1
WHERE (Estado IN (0)) AND (Producto IN (44,67)) .

Necesito que si mi vista se llama VentasAntonio, cruce/compruebe los CP de
ambas tablas y solamente me salgan los que realmente puede verder Antonio,
es decir,

0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid


No se si me explicado

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
02/02/2007 - 22:04 | Informe spam
Miguel A.,

Las vistas no son parametrizables. Puedes crear una vista por vendedor o
puedes crear una funcion definida por el usuario que devuelva una tabla.

create function dbo.ufn_f1 (
@vendedor varchar(25)
)
returns table
as
return (
select
a.Estado,
a.Producto,
a.Nombre,
a.Direccion,a.Telefono,a.CP,a.Provincia,b.Vendedor
from
dbo.t1 as a inner join dbo.t2 as b on a.CP = b.CP
where
b.Vendedor = @vendedor
)
go

select * from dbo.ufn_f1('Antonio')
go


AMB



"Miguel A." wrote:

Necesito una consulta que me estoy volviendo loco para crearla.
Tengo 2 tablas.
Tabla1.
Estado,Producto,Nombre,Direccion,Telefono,CP,Provincia
0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid
0,67,Jaime,Luchana5,91666666,28006,Madrid
0,32,Maria,Alcala58,936336545,08193,Barcelona

Tabla2
CP,Vendedor
28005,Antonio
28567,Antonio
28006,Maria
08193,Jaime

Tengo una vista de tal forma que me falta lo que necesito:

SELECT *
FROM dbo.Tabla1
WHERE (Estado IN (0)) AND (Producto IN (44,67)) .

Necesito que si mi vista se llama VentasAntonio, cruce/compruebe los CP de
ambas tablas y solamente me salgan los que realmente puede verder Antonio,
es decir,

0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid


No se si me explicado



Respuesta Responder a este mensaje
#2 Miguel A.
02/02/2007 - 22:10 | Informe spam
y no puedo implementar eso en una vista?. Te comento, tengo un programa en
visual, que muestra todas las vista y con un clik sobre alguna de ella,
muestro un HTML con esos datos mediante una hoja de estilos y solamente de
salcar esa informacion como Excel y ya esta.


"Alejandro Mesa" escribió en el
mensaje news:
Miguel A.,

Las vistas no son parametrizables. Puedes crear una vista por vendedor o
puedes crear una funcion definida por el usuario que devuelva una tabla.

create function dbo.ufn_f1 (
@vendedor varchar(25)
)
returns table
as
return (
select
a.Estado,
a.Producto,
a.Nombre,
a.Direccion,a.Telefono,a.CP,a.Provincia,b.Vendedor
from
dbo.t1 as a inner join dbo.t2 as b on a.CP = b.CP
where
b.Vendedor = @vendedor
)
go

select * from dbo.ufn_f1('Antonio')
go


AMB



"Miguel A." wrote:

Necesito una consulta que me estoy volviendo loco para crearla.
Tengo 2 tablas.
Tabla1.
Estado,Producto,Nombre,Direccion,Telefono,CP,Provincia
0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid
0,67,Jaime,Luchana5,91666666,28006,Madrid
0,32,Maria,Alcala58,936336545,08193,Barcelona

Tabla2
CP,Vendedor
28005,Antonio
28567,Antonio
28006,Maria
08193,Jaime

Tengo una vista de tal forma que me falta lo que necesito:

SELECT *
FROM dbo.Tabla1
WHERE (Estado IN (0)) AND (Producto IN (44,67)) .

Necesito que si mi vista se llama VentasAntonio, cruce/compruebe los CP
de
ambas tablas y solamente me salgan los que realmente puede verder
Antonio,
es decir,

0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid


No se si me explicado



Respuesta Responder a este mensaje
#3 Alejandro Mesa
02/02/2007 - 22:19 | Informe spam
Miguel,

Si tienes tres vendores, puedes crear una vista por cada vendedor, peor si
tienes cientos, vas a necesitar un buen rato.

Puedes mostrar los nombres de los vendedores y cuando hagas click en algiuno
de ellos, pasas el nombre como parametro hacia la funcion y te devolvera la
info para ese vendedor. Como si fuese un procedimiento almacenado.


AMB

"Miguel A." wrote:

y no puedo implementar eso en una vista?. Te comento, tengo un programa en
visual, que muestra todas las vista y con un clik sobre alguna de ella,
muestro un HTML con esos datos mediante una hoja de estilos y solamente de
salcar esa informacion como Excel y ya esta.


"Alejandro Mesa" escribió en el
mensaje news:
> Miguel A.,
>
> Las vistas no son parametrizables. Puedes crear una vista por vendedor o
> puedes crear una funcion definida por el usuario que devuelva una tabla.
>
> create function dbo.ufn_f1 (
> @vendedor varchar(25)
> )
> returns table
> as
> return (
> select
> a.Estado,
> a.Producto,
> a.Nombre,
> a.Direccion,a.Telefono,a.CP,a.Provincia,b.Vendedor
> from
> dbo.t1 as a inner join dbo.t2 as b on a.CP = b.CP
> where
> b.Vendedor = @vendedor
> )
> go
>
> select * from dbo.ufn_f1('Antonio')
> go
>
>
> AMB
>
>
>
> "Miguel A." wrote:
>
>> Necesito una consulta que me estoy volviendo loco para crearla.
>> Tengo 2 tablas.
>> Tabla1.
>> Estado,Producto,Nombre,Direccion,Telefono,CP,Provincia
>> 0,44,Pedro,GranVia3,91555555,28522,Madrid
>> 0,67,Roberto,Castellana3,91333333,28567,Madrid
>> 0,67,Jaime,Luchana5,91666666,28006,Madrid
>> 0,32,Maria,Alcala58,936336545,08193,Barcelona
>>
>> Tabla2
>> CP,Vendedor
>> 28005,Antonio
>> 28567,Antonio
>> 28006,Maria
>> 08193,Jaime
>>
>> Tengo una vista de tal forma que me falta lo que necesito:
>>
>> SELECT *
>> FROM dbo.Tabla1
>> WHERE (Estado IN (0)) AND (Producto IN (44,67)) .
>>
>> Necesito que si mi vista se llama VentasAntonio, cruce/compruebe los CP
>> de
>> ambas tablas y solamente me salgan los que realmente puede verder
>> Antonio,
>> es decir,
>>
>> 0,44,Pedro,GranVia3,91555555,28522,Madrid
>> 0,67,Roberto,Castellana3,91333333,28567,Madrid
>>
>>
>> No se si me explicado
>>
>>
>>



Respuesta Responder a este mensaje
#4 Miguel A.
02/02/2007 - 22:19 | Informe spam
Algo parecido a esto:

SELECT TOP 100 PERCENT *
FROM dbo.Tabla1
WHERE (Estado IN (0)) AND (Producto IN (44,67)) (CP IN
(SELECT dbo.tabla2.*
FROM dbo.tabla2 INNER JOIN dbo.Tabla1 ON
dbo.tabla2.CP = dbo.Tabla1.CP
WHERE (dbo.tabla2.Vendedor = 'Antonio')))


"Miguel A." escribió en el mensaje
news:
y no puedo implementar eso en una vista?. Te comento, tengo un programa en
visual, que muestra todas las vista y con un clik sobre alguna de ella,
muestro un HTML con esos datos mediante una hoja de estilos y solamente de
salcar esa informacion como Excel y ya esta.


"Alejandro Mesa" escribió en el
mensaje news:
Miguel A.,

Las vistas no son parametrizables. Puedes crear una vista por vendedor o
puedes crear una funcion definida por el usuario que devuelva una tabla.

create function dbo.ufn_f1 (
@vendedor varchar(25)
)
returns table
as
return (
select
a.Estado,
a.Producto,
a.Nombre,
a.Direccion,a.Telefono,a.CP,a.Provincia,b.Vendedor
from
dbo.t1 as a inner join dbo.t2 as b on a.CP = b.CP
where
b.Vendedor = @vendedor
)
go

select * from dbo.ufn_f1('Antonio')
go


AMB



"Miguel A." wrote:

Necesito una consulta que me estoy volviendo loco para crearla.
Tengo 2 tablas.
Tabla1.
Estado,Producto,Nombre,Direccion,Telefono,CP,Provincia
0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid
0,67,Jaime,Luchana5,91666666,28006,Madrid
0,32,Maria,Alcala58,936336545,08193,Barcelona

Tabla2
CP,Vendedor
28005,Antonio
28567,Antonio
28006,Maria
08193,Jaime

Tengo una vista de tal forma que me falta lo que necesito:

SELECT *
FROM dbo.Tabla1
WHERE (Estado IN (0)) AND (Producto IN (44,67)) .

Necesito que si mi vista se llama VentasAntonio, cruce/compruebe los CP
de
ambas tablas y solamente me salgan los que realmente puede verder
Antonio,
es decir,

0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid


No se si me explicado









Respuesta Responder a este mensaje
#5 Miguel A.
03/02/2007 - 13:05 | Informe spam
Alguna idea??

"Miguel A." escribió en el mensaje
news:ehLFN$
Algo parecido a esto:

SELECT TOP 100 PERCENT *
FROM dbo.Tabla1
WHERE (Estado IN (0)) AND (Producto IN (44,67)) (CP IN
(SELECT dbo.tabla2.*
FROM dbo.tabla2 INNER JOIN dbo.Tabla1 ON
dbo.tabla2.CP = dbo.Tabla1.CP
WHERE (dbo.tabla2.Vendedor = 'Antonio')))


"Miguel A." escribió en el mensaje
news:
y no puedo implementar eso en una vista?. Te comento, tengo un programa en
visual, que muestra todas las vista y con un clik sobre alguna de ella,
muestro un HTML con esos datos mediante una hoja de estilos y solamente de
salcar esa informacion como Excel y ya esta.


"Alejandro Mesa" escribió en el
mensaje news:
Miguel A.,

Las vistas no son parametrizables. Puedes crear una vista por vendedor o
puedes crear una funcion definida por el usuario que devuelva una tabla.

create function dbo.ufn_f1 (
@vendedor varchar(25)
)
returns table
as
return (
select
a.Estado,
a.Producto,
a.Nombre,
a.Direccion,a.Telefono,a.CP,a.Provincia,b.Vendedor
from
dbo.t1 as a inner join dbo.t2 as b on a.CP = b.CP
where
b.Vendedor = @vendedor
)
go

select * from dbo.ufn_f1('Antonio')
go


AMB



"Miguel A." wrote:

Necesito una consulta que me estoy volviendo loco para crearla.
Tengo 2 tablas.
Tabla1.
Estado,Producto,Nombre,Direccion,Telefono,CP,Provincia
0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid
0,67,Jaime,Luchana5,91666666,28006,Madrid
0,32,Maria,Alcala58,936336545,08193,Barcelona

Tabla2
CP,Vendedor
28005,Antonio
28567,Antonio
28006,Maria
08193,Jaime

Tengo una vista de tal forma que me falta lo que necesito:

SELECT *
FROM dbo.Tabla1
WHERE (Estado IN (0)) AND (Producto IN (44,67)) .

Necesito que si mi vista se llama VentasAntonio, cruce/compruebe los CP
de
ambas tablas y solamente me salgan los que realmente puede verder
Antonio,
es decir,

0,44,Pedro,GranVia3,91555555,28522,Madrid
0,67,Roberto,Castellana3,91333333,28567,Madrid


No se si me explicado













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