注意:表格未正确插入。请理解
(Col1-ID,Col2-Name,Col3-Type(a1,b1,c1,d1),Col4-Year)
表:示例1
这是我的查询,
select distinct name,type from example1
Id Name Type Year
1 sai a1 2017
2 sai b1 2016
3 sai c1 2015
4 joe a1 2016
5 Michael c1 2015
6 Michael d1 2013
7 Michael a1 2012
我的查询是,当我从example1表中选择名称和类型时,结果如下所示
Id Name Type
1 sai a1
2 sai b1
3 joe a1
4 Michael c1
5 Michael d1
我需要最新年度值,但显示重复值(包含最新年份值和上一年度值) 请帮忙。
答案 0 :(得分:0)
您可以将年份作为当前日期的年份部分,并将查询与当前年份的WHERE子句一起使用。
DECLARE @currYear INT = DATEPART(yyyy, GETDATE())
select distinct name,type from example1 WHERE Year = @currYear
答案 1 :(得分:0)
您的查询返回了您要求的内容,您选择了不同的名称和类型,这样您就可以得到这两个列的不同值。
如果您只想要不同的名称,那么您可以这样做:
SELECT DISTINCT
name
FROM example1;
如果您也想要这种类型,那么您需要决定要对其进行哪种聚合,例如最大,最小,计数等...然后你可以使用GROUP BY
。
如果您想要不同的名称和最多的recnet类型,那么您可以使用:
SELECT
name,
MAX(type)
FROM example1
GROUP BY name
同样类型和名称是SQL中的关键字,最佳做法是不将这些用于列名称
答案 2 :(得分:0)
您可以使用GROUP BY语句
Select name,type from example1 where year=YEAR(CURDATE()) group by name,type;