comme indiqué dans la capture d'écran, pour un ID différent, je veux sélectionner toutes les lignes qui ont updateTime commun. Par exemple ici, les trois ID ont des updateTime 9:30:02 et 9:30:04 communs. Par conséquent, je veux sélectionner les 3e et 4e rangées (pour l'id 211709), les 6e et 8e rangées (pour l'id 301801), les 9e et 10e rangées (pour l'id 931801), je veux sélectionner toutes ces 6 rangées. Quel code sql dois-je écrire? Merci d'avance!!!T-SQL, sélectionnez les lignes
-2
A
Répondre
3
Comme vous devez retourner seulement les temps de mise à jour qui sont communs pour tous les ID, vous pouvez utiliser une requête comme ceci:
Si vous vous demandez ce que fait la clause HAVING
- pour chaque UpdateTime vous vérifiez si le nombre d'ID avec ce UpdateTime est égal au nombre total d'ID.
+0
Merci les gars, une aide précieuse! – Michael
1
Cette requête vous donnera tous les temps de mise à jour qui se produisent plus d'une fois
Select UpdateTime
From MyTable
Group By UpdateTime
Having Count (*) > 1
utiliser comme sous requête
Select *
From MyTable
Where UpdateTime IN
(
Select UpdateTime
From MyTable
Group By UpdateTime
Having Count (*) > 1
)
N'importe qui, n'importe quelle solution? S'il vous plaît, aidez, merci! – Michael