我需要对同名(具有相同名称和不同的personal_identidy_code的人)进行统计。我想将2行或更多行合并为1行,以便可以比较数据与CASE语句。
可以说,我有这样的查询输出:
function a(fromDateTime,toDateTime){
var fromTimestamp = new Date(fromDateTime).getTime()
var toTimestamp = new Date(toDateTime).getTime()
if (fromTimestamp > toTimestamp) {
console.log("xxxxx")
return
}
}
具有相同activityNR的行可能会多于2行(activityName可以不同)。我的输出中有1个以上的活动。我需要比较一下,如果在活动Nr 111中有同名的人,但是个人身份代码不同。 我有将这些行合并为一个主意的想法,所以我的输出是这样的:
acitivityNR acitivityName Personal_identity_code Name
111 test 00000000001 hello wor
111 test2 00000000002 hello wor
111 test2 00000000002 hello wor
222 asd 11111111111 my name
222 asd2 11111111112 my name
然后从那里我可以使用CASE语句过滤掉其中code = code2 = code3
的输出。这就是我所拥有的,有些地方也有句子,但是那现在不重要了。
acitivityNR = aNR
acitivityName = aName
Personal_identity_code = code
aNR Aname Code Name Code2 Name2 Code3 Name3
111 test 00000000001 hello wor 00000000002 hello wor 00000000002 hello wor
222 asd 11111111111 my name 11111111112 my name
答案 0 :(得分:1)
select a1.activityNR, a1.activityName, a1.prsonal_identity_code,
a2.activityName, a2.prsonal_identity_code
from activitys a1
inner join activitys a2 on a1.acitivityNR = a2.acitivityNR
where a1.prsonal_identity_code <> a2.prsonal_identity_code
这将为您提供如下结果:
aNR Aname Code Name Code2 Name2
111 test 00000000001 hello wor 00000000002 hello wor
111 test 00000000001 hello wor 00000000002 hello wor
222 asd 11111111111 my name 11111111112 my name