0
votes

Comment obtenir la valeur de l'année unique (en utilisant le groupe par) à partir d'une table avec plusieurs valeurs de date à l'aide de la requête SQL dans Access

J'ai une table avec des vacances (données ci-dessous). Comment obtenir les valeurs uniques telles que 2018 2019.2020 à l'aide d'une requête SQL. xxx pré>

essayé p> xxx pré>

Il renvoie plusieurs valeurs. p>

Essayé en utilisant P>

SELECT Year([00_Holiday].[Date-Holiday]) AS ["HYear"] FROM 00_Holiday
group by [00_Holiday].[Date-Holiday];


2 commentaires

Ne fait pas de sens, mais a reçu la sortie requise à l'aide d'une année de sélection ([00_holiday]. [Date-Holiday]) comme ["Hyear"] de 00_holiday Group d'ici (année ([00_holiday]. [Date-date-holiday])); Est-ce que cette requête est réalisable?


Voilà comment le groupe par fonctionne. Si vous lisez la colonne dans la clause du groupe par clause, vous demandez essentiellement que des enregistrements en double soient exclus de l'ensemble de résultats. Cela donne le même effet que Select distinct, qui élimine également les lignes en double du jeu de résultats.


3 Réponses :


0
votes

Essayez ceci:

Declare @t table (Holiday varchar(50),memo varchar(50))

insert into @t values ('1/1/2018','New Years Day')
insert into @t values ('1/1/2018','Bank Holiday')
insert into @t values ('1/1/2019','New Years Day')


select t.Holiday,t.memo from
( select ROW_NUMBER() over (partition by right(holiday,4) order by memo ) rn,holiday,memo from @t
) t
where rn=1


0 commentaires

0
votes

La requête suivante doit faire ce que vous voulez:

Year
2018
2019


1 commentaires

Méthode 1 utilise distinct, mais il présente des inconvénients qu'il peut augmenter la charge sur la méthode du moteur de requête 2 utilise un groupe par lequel est plus fiable.



2
votes

Utilisez distinct et la syntaxe correcte: xxx


0 commentaires