将SQL语句限制为一年

将SQL语句限制为一年,sql,Sql,我想采用以下两种说法,只得到2013年的结果 SELECT COUNT(DISTINCT CAST(c1.caseseqnumber AS VARCHAR) + '-' + CAST(c1.year AS VARCHAR)), COUNT(DISTINCT CAST(c2.caseseqnumber AS VARCHAR) + '-' + CAST(c2.year AS VARCHAR)) FROM caseparticipants c1 LEFT JOIN cas

我想采用以下两种说法,只得到2013年的结果

SELECT
  COUNT(DISTINCT
    CAST(c1.caseseqnumber AS VARCHAR) + '-' + CAST(c1.year AS VARCHAR)),
  COUNT(DISTINCT
    CAST(c2.caseseqnumber AS VARCHAR) + '-' + CAST(c2.year AS VARCHAR))
FROM 
  caseparticipants c1 LEFT JOIN caseparticipants c2
  ON c1.year=c2.year AND c1.caseseqnumber=c2.caseseqnumber
     AND c2.participanttype = 'Appellant Rep 1'
第二个呢

SELECT DISTINCT
  c1.caseseqnumber, 
  c1.year 
FROM 
  caseparticipants c1 LEFT JOIN caseparticipants c2
  ON c1.year=c2.year AND c1.caseseqnumber=c2.caseseqnumber
     AND c2.participanttype = 'Appellant Rep 1'
WHERE
  c2.year IS NULL
Order by year ASC, Caseseqnumber ASC

谢谢

如果看起来您已经有了
年份
字段,那么只需将其添加到
WHERE
子句中:

1:

2:


你试过什么?我看到一个“WHERE c2.year为NULL”,所以这不会那么难。当我尝试这样做时,它会删除所有正确的结果。如果我做c2.year='2013',我没有得到我需要的结果集,但我们不知道你得到了什么结果集,以及你在寻找什么。不知道有谁能帮上忙。我得到的结果集是所有没有代表的案例,但我需要将我得到的所有结果限制在某一年。该声明的作用是获得所有年份的正确结果集,但我想将其限制在某个特定的范围内year@parkjohnston更多关于你们桌子的细节会有所帮助,因为我们似乎都对您要查找的内容感到非常困惑。is null为我提供了表中没有的结果。这为我提供了正确的结果。所以您是否需要
c1.year
为2013年,但
c2
中没有匹配项的记录?只需将其添加到
where
子句中即可。我已经编辑了上面的答案。这将返回当年的所有结果??这不是你想要的吗?你必须更清楚你在找什么。请发布一些示例数据或其他内容。
SELECT COUNT(DISTINCT CAST(c1.caseseqnumber AS VARCHAR) + '-' + CAST(c1.year AS VARCHAR)), COUNT(DISTINCT CAST(c2.caseseqnumber AS VARCHAR) + '-' + CAST(c2.year AS VARCHAR)) 
FROM caseparticipants c1 
LEFT JOIN caseparticipants c2 
  ON c1.year=c2.year AND c1.caseseqnumber=c2.caseseqnumber 
    AND c2.participanttype = 'Appellant Rep 1'
WHERE c1.year = 2013
SELECT DISTINCT c1.caseseqnumber, c1.year 
FROM caseparticipants c1 
LEFT JOIN caseparticipants c2 
  ON c1.year=c2.year AND c1.caseseqnumber=c2.caseseqnumber 
    AND c2.participanttype = 'Appellant Rep 1' 
WHERE c1.year = 2013
  AND c2.year IS NULL
ORDER BY year ASC, Caseseqnumber ASC