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
 

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



Preguntas similares