我在sql server 2005上的表中有如下记录
fname lname address zip
xxx yyy UK 001
zzz yyy UK 001
aaa yyy UK 002
ddd jjj US 003
eee jjj US 003
我需要以下列格式得到结果
fname lname address zip
xxx,zzz yyy UK 001
ddd,eee jjj US 003
基本上每个具有计数地址和邮编2次的记录都会将其名字分组并用逗号分隔。
好的这是我的方法:但现在没有工作和卡住
select fname, lname, address, zip from table people
where address is not null
and zip is not null
group by address,zip
having count(address)=2 and count (zip)=2
order by address
- 现在要合并我正在使用的记录
SELECT fname = COALESCE(fname + ', ', '') + ISNULL(fname, 'N/A'), fname, lname,streetname, housenumber
FROM people
WHERE address is not null and zip is not null
group by address,zip
having count(address)=2 and count (zip)=2
order by address
答案 0 :(得分:1)
我不认为这是重复的,因为它不需要group_concat()
之类的东西。 OP特别要求两次次,你可以这样做:
select min(fname) + ',' + max(fname), lname, address, zip
from table t
group by lname, address, zip
having count(*) = 2;
当然,更多匹配行的一般答案无法通过这种方式解决,但问题明确地说“拉链2次”。