Salut J'ai un tableau suivant dit prixSQL affichant des lignes avec des valeurs en double dans 3 lignes
CostID ItemID Level EffectiveFrom EffectiveTo
6274751 12345 1 12/02/2013 NULL
6274751 12345 1 13/02/2013 NULL
6274751 12345 2 12/02/2013 NULL
6254784 12345 1 12/02/2013 NULL
6254784 12345 1 13/02/2013 NULL
6244784 12345 9 12/02/2013 NULL
Je voudrais être en mesure d'écrire une requête pour trouver les lignes en double en comparant 3 colonnes de CostID '' ItemID » et « niveau » et afficher celles qui sont doublons uniquement
prévue sortie Partie 1
CostID ItemID Level EffectiveFrom EffectiveTo
6274751 12345 1 12/02/2013 NULL
6274751 12345 1 13/02/2013 NULL
6254784 12345 1 12/02/2013 NULL
6254784 12345 1 13/02/2013 NULL
une fois que je reçois le résultat ci-dessus et je voudrais mettre à jour la table EffectiveTo de la dernière double rangée
Sortie prévue pour la partie 2
CostID ItemID Level EffectiveFrom EffectiveTo
6274751 12345 1 12/02/2013 13/02/2013
6274751 12345 1 13/02/2013 NULL
6254784 12345 1 12/02/2013 13/02/2013
6254784 12345 1 13/02/2013 NULL
J'ai essayé ceci:
{
SELECT *
FROM price
WHERE ItemID IN
( SELECT ItemID
FROM price
GROUP BY ItemId HAVING COUNT(distinct level) > 1
)
ORDER BY CostID }
pour la première partie de la requête mais n'a pas pu obtenir les résultats que je veux, toute aide serait très appréciée.
Merci
Quel sql utilisez-vous? –
SQL Server 2005, Merci pour le formatage pour moi – user2865216
Il y en a tellement que vous vouliez déterminer. Soyez précis s'il vous plait. S'il vous plaît fournir votre sortie attendue. –