SQL SELECT中的结果太多

时间:2013-06-28 19:00:08

标签: sql

这是我的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

我所拥有的那些是我实际想要实现的结果

1 个答案:

答案 0 :(得分:1)

查看您标记为要实现的内容,表示您的join条件不完整。您想要的行不仅包括PPBUSMST.Assessment_Number = PPMASTER.Assessment_Number,还包括YEAR(PPMASTER.Assessment_Date) = PPBUSMST.[Year]

将其添加到join条件可以解决问题。