2012-07-16 27 views
0

的每个值记录比方说,我有以下的一些表模式: year|val1|val2 我想所有的val1val2列有year列的所有值。我怀疑我需要在这里组队,但我无法想象如何。 比方说,我们从查询中选择了几年:SELECT DISTINCT YEAR FROM table。假设它返回2000,2001。所以,如果非要行作为2000|1|22001|1|2那么该查询应该返回单列1|2MSSQL:找到具有

+0

哪些类型的这些领域,可以为您展示样本数据和期望的结果? – 2012-07-16 09:41:53

+0

请定义表.... – Jalpesh 2012-07-16 09:42:22

+0

定义:all val1是GUID,val2是nvarchar。年份为整数 – seeker 2012-07-16 09:48:05

回答

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

不幸的是,我无法访问数据库来尝试它。只要我会尝试一下,我会写出结果并接受问题。谢谢你的帮助。 – seeker 2012-07-16 09:52:13

+0

谢谢。它适用于指定模式的情况。 – seeker 2012-07-16 12:55:14

+0

欢迎:) – Madhivanan 2012-07-16 12:58:19

0

不知道你的问题。但我认为你需要val1和val2的所有有效年数的值。如果是这种情况,那么你必须做内部加入 这样的事情

select @yearcnt = count从表(不同年份)

或选择VAL1,计数(distint年)为totalyear从表 组由VAL1 具有计数(不同年份)= @yearcnt