有条sql语句有点难,不知道如何简洁的写出来,所以发出来请教一下大家,大家感兴趣的进来看看,顺祝中秋节快乐!!
表A:
********************************************
******************************************
id name goods_type area
1 A月饼 面食 南京
2 B月饼 面食 南京
3 A月饼 面食 北京
4 A月饼 面食 北京
5 A月饼 面食 北京
现在已知参数id,area比如 id=1,area=北京现在要根据(name 和goods_type)相同的另一地区的id
现在要求得到结果如下:id=3,4,5
如何写sql语句呢
------解决方案--------------------不知道这个是不是楼主想要的。。
try:
create table ta(id int ,name varchar(50),goods_type varchar(50), area varchar(50))
insert into ta select 1, 'A月饼 ', '面食 ', '南京 '
union all select 2, 'B月饼 ', '面食 ', '南京 '
union all select 3, 'A月饼 ', '面食 ', '北京 '
union all select 4, 'A月饼 ', '面食 ', '北京 '
union all select 5, 'A月饼 ', '面食 ', '北京 '
alter function ttt(@id int ,@area varchar(50))
returns varchar(50)
as
begin
declare @name varchar(50)
declare @goods_type varchar(50)
declare @sql varchar(50)
select @name=name,@goods_type=goods_type from ta where id=@id
select @sql=isnull(@sql+ ', ', ' ')+cast(id as varchar) from ta where name=@name and goods_type=@goods_type and area=@area
return @sql
end
调用函数:
select dbo.ttt(1, '北京 ')
执行结果:3,4,5