2013-05-02 69 views
-5

我要带两个下面的语句,只得到了结果于2013年限制SQL语句年

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 

谢谢!

+0

你尝试过什么?我看到“WHERE c2.year IS NULL”,所以这不会那么困难。 – 2013-05-02 14:21:44

+0

当我尝试它删除所有正确的结果。如果我做c2.year ='2013'我没有得到我需要的结果集 – parkjohnston 2013-05-02 14:22:33

+0

没错,但我们不知道你得到了什么结果集,以及你在找什么。不确定任何人都可能提供帮助。 – 2013-05-02 14:23:37

回答

2

如果您似乎已经有一个year场,所以只需添加到您的WHERE条款:

1:

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 

2:

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 
+0

空是让我不在表中的结果..这是我得到正确的结果。 – parkjohnston 2013-05-02 14:23:36

+0

那么你需要记录哪里'c1.year'是2013年,但是'c2'没有匹配? – 2013-05-02 14:25:27

+0

正确...只是不知道该怎么做 – parkjohnston 2013-05-02 14:26:32