(1)select gdRMJN_ZRZ from Project_SetGDRule_JN where ruleID='1802'显示原来的ZRZ
(2)select PJN_ZRZ,count(PJN_ZRZ) as Frequency from matchHistoryLog where MHL_matchState=1
and ruleID='1802' group by PJN_ZRZ 显示matchHistoryLog表中不同ZRZ出现的次数
要实现在显示matchHistoryLog表中不同ZRZ出现的次数的同时,显示对应的原来的ZRZ,该怎么写?
(3)select b.gdRMJN_ZRZ as PJN_OldKEY,a.PJN_ZRZ as PJN_NEWKEY,count(PJN_ZRZ) as Frequency from matchHistoryLog as a join Project_SetGDRule_JN as b on a.ruleID=b.ruleID and a.ruleID='1802'
and MHL_matchState=1 group by a.PJN_ZRZ,b.gdRMJN_ZRZ 计算的频度与(2)不同,求解释。
这两个sql语句不是一样的啊,如果你想一些样的结果的话就要保证:matchHistoryLog中的PJN_ZRZ 与Project_SetGDRule_JN 中的dRMJN_ZRZ 相对于ruleID 是一样分布的。我不知道我的意思里理解力不?
你可以执行下面的语句看看是不是存在记录,这些存在的记录就是导致他们不相同的原因。
select b.gdRMJN_ZRZ as PJN_OldKEY,a.PJN_ZRZ as PJN_NEWKEY from matchHistoryLog as a join Project_SetGDRule_JN as b on a.ruleID=b.ruleID and a.ruleID='1802' and MHL_matchState=1 where b.gdRMJN_ZRZ <> a.PJN_ZRZ
上面的描述是正确的,但是sql语句是错误的。
这个sql语句不好说明问题,我举一个例子:
matchHistoryLog :
ruleID PJN_ZRZ
1 1
2 1
3 2
Project_SetGDRule_JN :
ruleID gdRMJN_ZRZ
1 2
2 2
3 1
想这样的数据,你连接的时候结果是不一样的