req: si plusieurs téléphones ont la même date la plus récente, prenez le téléphone avec le nombre le plus bas. Mes données sont comme ci-dessous.
CustomerID PhoneNumber CreatedDate 1111 1234587 2013-09-10 2222 4726722 1998-06-18
4 Réponses :
Utilisez deux sous-requêtes pour déterminer la date maximale et le numéro de téléphone min et les rejoindre avec la table elle-même
SELECT a.CustomerID, a.PhoneNumber, a.CreatedDate
FROM test a
JOIN (SELECT CustomerID, MAX(CreatedDate) as max_date
FROM test
GROUP BY CustomerID) b ON b.CustomerID = a.CustomerID AND
b.max_date = a.CreatedDate
JOIN (SELECT CustomerID, CreatedDate, MIN(PhoneNumber) min_number
FROM test
GROUP BY CustomerID, CreatedDate) c ON c.CustomerID = a.CustomerID AND
c.min_number = a.PhoneNumber AND
c.CreatedDate = a.CreatedDate
Merci pour l'aide! Mais lorsque nous disons le top 1 de la table, cela ne donnera qu'une seule valeur. Mais ma sortie devrait être comme pour un seul numéro de téléphone d'ID client doit être basé sur la date de création. Toute suggestion s'il vous plaît.
@Nagasushmakallam j'ai mis à jour ma réponse maintenant que je ferais mieux de comprendre la question
@Nagasushmakallam tous les commentaires à ce sujet?
Merci pour l'aide! J'ai utilisé le rang () sur la partition par fonction pour obtenir le résultat précis.
@NagasushMakAllam peut-être que vous pourriez poster votre solution comme une réponse pour aider les autres.
Et voici la solution. Sélectionnez * dans #TestStemp à partir de (sélectionnez CustomerID, Phonenumber, créatedDate, classement () sur (Partition par la commande clientId par CreatedDate Desc, Phonenumber ASC) Rank_nbr de DBO.Yourdble) A Où rang_nbr = 1
Cela aide-t-il?
Une autre option utilise l'utilisation du Exemple strong> P> avec les cravates code> Clause in-concert avec Row_Number () code> CustomerID PhoneNumber CreatedDate
2222 7654312 2013-02-05
1111 1243557 2013-09-11
@Nagasushmakallam heureux d'aider, mais pourquoi accepteriez-vous qui ressemble à la mauvaise réponse?
Essayez ceci:
SELECT
YT.CreatedDate
,MIN(YT.PhoneNumber)
FROM
YourTable YT
GROUP BY
YT.CreatedDate
Merci pour l'aide @Mili! Mais ma production est basée sur le nombre minimum de créatures non sur phonenumber.
@NagaSushMakAllam Bon d'entendez vous avoir trouvé une solution s'il vous plaît supprimer la marque acceptée de cette réponse, car il est clairement faux et que la réponse incorrecte marquée comme acceptée sera confuse et peut-être trompeuse pour que d'autres lisent cette question à l'avenir (désolé MILI).
Modifier la question Ajouter une sortie d'échantillon en fonction des données d'échantillon.
Retournez à quiconque vous a donné cette exigence et demandez des éclaircissements. Aucune des lignes de vos données n'a la même date.