有条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