查询以查找具有多个日期的记录

时间:2018-04-23 15:03:51

标签: sql-server

我正在尝试为MS SQL数据库构建一个查询,该数据库将查找超过一年的记录,但不会查找只有一个记录的记录。

假设我有一个汽车经销商,我有2015年的雪佛兰和2017年的2个,那么我想找到雪佛兰2015 1和雪佛兰2017 2但是如果我有2018年的三个福特而且只有2018年那么我就不会我想要那个。

我已经与团体和联接进行了调整,但我没有得到任何地方。所以我需要Select from table一些东西。我倾向于转轴,但不知道该怎么做。谢谢你的帮助

MyTable内容

              Model  year   count
              Chevy 2012    1
              Chevy 2012    1
              Chevy 2015    1
              Ford  2018    1
              Ford  2018    1
              Ford  2018    1   
              Buick 2017    1
              Lexus 2017    1
              Lexus 2015    1

所需的结果集

             Chevy  2012    2
             Chevy  2015    1
             Lexus 2017    1
             Lexus 2015    1

因为模型有两年不同的年份

2 个答案:

答案 0 :(得分:1)

以下查询可以帮助您。无需硬编码模型值。

Select T.Model,T.[year] ,count(T.[year])
from T
join (select distinct * from T) S on T.model = S.model and T.year!=S.year
group by T.Model,T.[year]  

答案 1 :(得分:0)

您需要在子查询上使用SUM函数和group by,因为count列上可能有多个计数。然后加入自己和distinct以排除重复数据。

Select distinct t1.*
from (
  SELECT Model,[year] ,sum([count]) totle
  FROM T
  group by Model,[year] 
) t1
inner join T t2 on t1.Model = t2.Model and t1.[year] !=t2.[year]

sqlfiddle:http://sqlfiddle.com/#!18/e8756/55

注意:[table],[year]是sql中的关键字,避免将其命名为列名