这是我的SQL声明......
SELECT
dbo.PPMASTER.Per_or_Bus,
dbo.PPMASTER.Assessment_Date,
dbo.PPBUSMST.Assessment_Number,
dbo.PPBUSMST.Year
FROM dbo.PPBUSMST INNER JOIN dbo.PPMASTER
ON dbo.PPBUSMST.Assessment_Number = dbo.PPMASTER.Assessment_Number
WHERE (dbo.PPBUSMST.Assessment_Number = @Assessment)
问题是我得到了来自Assessment_Date
的重复结果。每个Assessment_Date
每年只应有一个结果。有什么想法吗?
以下是一些结果样本数据...
**B 1996-05-29 00:00:00 9005450 1996**
B 1996-05-29 00:00:00 9005450 1997
B 1996-05-29 00:00:00 9005450 1998
B 1996-05-29 00:00:00 9005450 1999
B 1996-05-29 00:00:00 9005450 2000
B 1996-05-29 00:00:00 9005450 2001
B 1996-05-29 00:00:00 9005450 2002
B 1997-05-29 00:00:00 9005450 1996
**B 1997-05-29 00:00:00 9005450 1997**
B 1997-05-29 00:00:00 9005450 1998
B 1997-05-29 00:00:00 9005450 1999
B 1997-05-29 00:00:00 9005450 2000
B 1997-05-29 00:00:00 9005450 2001
B 1997-05-29 00:00:00 9005450 2002
B 1998-04-27 00:00:00 9005450 1996
B 1998-04-27 00:00:00 9005450 1997
**B 1998-04-27 00:00:00 9005450 1998**
B 1998-04-27 00:00:00 9005450 1999
B 1998-04-27 00:00:00 9005450 2000
B 1998-04-27 00:00:00 9005450 2001
B 1998-04-27 00:00:00 9005450 2002
我所拥有的那些是我实际想要实现的结果
答案 0 :(得分:1)
查看您标记为要实现的内容,表示您的join
条件不完整。您想要的行不仅包括PPBUSMST.Assessment_Number = PPMASTER.Assessment_Number
,还包括YEAR(PPMASTER.Assessment_Date) = PPBUSMST.[Year]
。
将其添加到join
条件可以解决问题。