我正在尝试为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
因为模型有两年不同的年份
答案 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中的关键字,避免将其命名为列名