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.