SQL Min affichant toutes les lignes

J'ai une requête sélectionnant datatables d'une table temporaire qui est présentée ci-dessous

SELECT Ref, YOA, Account, Cert, MIN(Unit) AS Unit, Name Currency, Amount FROM #TMP_Accounts GROUP BY Ref, YOA, Account, Cert, Name, Currency, Amount 

Lorsque j'exécute cette requête, j'obtiens les résultats suivants:

 Ref YOA Account Cert Unit Name Currency Amount 1924403 2017 ABCXYZ PFA96417 1 US CAD 25,167,555 1924403 2017 ABCXYZ PFA96417 3 FR CAD 25,167,555.56 1924403 2017 ABCXYZ PFA96417 4 DE CAD 25,167,555.56 

Ce que je suis coincé sur le fait que lorsque j'utilise la fonction MIN, je veux retirer un logging pour la valeur de l'unité 1, mais à la place, je reçois 3 loggings. J'ai parcouru cette colonne par colonne et les loggings supplémentaires n'apparaissent que lorsque j'ajoute dans la colonne Montant.

Quand je fais un simple select *, je reçois ce qui suit:

 Ref YOA Account Cert Unit Name Currency Amount 1924403 2017 ABCXYZ PFA96417 1 US CAD 25,167,555.00 1924403 2017 ABCXYZ PFA96417 2 UK CAD 25,167,555.00 1924403 2017 ABCXYZ PFA96417 3 FR CAD 25,167,555.56 1924403 2017 ABCXYZ PFA96417 4 DE CAD 25,167,555.56 1924403 2017 ABCXYZ PFA96417 5 AU CAD 25,167,555.56 1924403 2017 ABCXYZ PFA96417 6 NZ CAD 25,167,555.56 

Donc, je sais que c'est agrégé à un point, mais pas à la valeur de l'unité minimale dont j'ai besoin.

Merci d'avance

Une autre façon est de join la table par lui-même

 select a.* from #TMP_Accounts a inner join (select min(unit) as minunit from #TMP_Accounts) b on a.Unit = b.minunit 

Si vous voulez la ligne avec le nombre minimum d'unités, vous pouvez utiliser:

 select top (1) a.* from #TMP_Accounts a order by units; 

Le group by cause définitivement votre problème. Cela peut ne pas convenir à ce que vous voulez faire.

Sur la base de votre explication, je pense que vous cherchez ceci:

 SELECT * FROM #TMP_Accounts WHERE Unit = (SELECT MIN(Unit) FROM #TMP_Accounts) 

Cela ne renvoie pas nécessairement une ligne, car pour les lignes dupliquées avec la même valeur minimale, vous récupérerez ces 2 lignes. Cependant, la façon dont ce scénario doit être traité n'est pas claire d'après votre question.