0

假设我有一些下表架构: year|val1|val2 我想获取所有列val1val2所有值的year列。我怀疑我需要在这里分组,但我无法想象如何。假设我们从查询中设置了几年:SELECT DISTINCT YEAR FROM table。假设它返回 2000,2001。所以如果我必须行2000|1|22001|1|2然后查询应该返回单行1|2

4

2 回答 2

1

这样的事情可能会奏效

select
    value1
from 
    table as t1 inner join
    (select distinct year from table) as t2
    on t1.year=t2.year
group by
    val1 
having count(distinct t1.year)=(count(distinct t2.year) )
于 2012-07-16T09:46:08.167 回答
0

不确定你的问题。但我认为你需要所有有效年值的 val1 和 val2 值。如果是这种情况,那么你必须对表进行内部连接,如下所示

从表中选择 @yearcnt = count(distinct year)

或从表组中选择 val1,count(distint year) 作为 totalyear,由 val1 具有 count(distinct year) = @yearcnt

于 2012-07-16T09:50:01.433 回答