0
votes

Sélectionnez le top 1 basé sur des colonnes distinctes

J'ai besoin de sélectionner l'enregistrement top 1 de chaque groupe de colonne UniTID et CompanyCode et en utilisant la commande par colonne créée

Voici un exemple de ma table xxx

Mes résultats attendraient ces lignes xxx

Nous examinons d'abord UNITID, NEXTE CHECK CompanyCode s'il existe un enregistrement avec DIFFÉRENTS COOKCODE Il sera affichage, mais si elle sera identique, elle sélectionnera le top 1 avec la commande par CreatedDate

Quere simple: Sélectionnez ID, UNITID, CompanyCode, créatedDate de Tbl_unit Commande par crédikeDate

Quelqu'un sache comment cela peut être atteint?


1 commentaires

Et s'il y a une cravate, c'est-à-dire deux enregistrements avec le même UnitID , CompanyCode et créatedDate ?


3 Réponses :


2
votes

Si je comprends correctement, l'instruction suivante peut aider:

SELECT ID, UnitID, CompanyCode, CreatedDate
FROM (
   SELECT 
      ID, UnitID, CompanyCode, CreatedDate,
      ROW_NUMBER() OVER (PARTITION BY UnitID, CompanyCode ORDER BY CreatedDate) AS Rn
   FROM Tbl_Unit
) t
WHERE Rn = 1


0 commentaires

2
votes

J'aime utiliser TOP 1 avec les liens CODE> Pour gérer ce type de requête sur SQL Server:

SELECT TOP 1 WITH TIES *
FROM Tbl_Unit
ORDER BY
    ROW_NUMBER() OVER (PARTITION BY UnitID, CompanyCode ORDER BY CreatedDate DESC);


0 commentaires

0
votes

Utilisation de Row_Number () fonction. xxx

démo xxx


0 commentaires