Ma table SQL comporte deux champs ayant un impact sur mon problème: "Priorité" en tant que réel et Date_Date en tant que date/heure. Lorsque l'utilisateur ajoute des éléments à la table, il spécifie la priorité pour un Start_Date donné.Mise à jour SQL par ligne
Si Item1 Priorité 1, alors peut-être Item2 priorité 2 et il sera donné un start_date après le point 1.
Mais si Item2 priorité est donnée à 0,5 (ou un nombre inférieur à la priorité de Item1), puis sa date_début sera avant date_début de l'élément 1.
Après chaque élément est ajouté, je veux passer par la liste des articles et mettre à jour toutes les priorités afin qu'ils sont des nombres entiers, en commençant par la première start_date avec une priorité = 1, 2, 3, etc.
Je travaille avec SQL 2005. Je sais que je peux le faire avec un curseur. Y a-t-il un meilleur moyen? Comment?
Merci.
Je vais essayer votre solution car je vois maintenant qu'il y a des items avec des Start_Dates identiques. Les éléments avec Start_Dates identiques commencent avec des priorités identiques et doivent se retrouver avec des priorités identiques. Je vous remercie! Je vous ferai savoir si cela fonctionne au besoin. –
Amélioration supplémentaire: les éléments en cours de modification doivent tous avoir Start_Dates> Today. Dois-je ajouter la clause where supplémentaire dans la sous-requête? Par exemple: Update Tableau = Définir la priorité (Select Count (*) A partir du tableau Où start_date <= T.Start_Date Et start_date> = Getdate()) À partir du tableau T –
Les redémarrages de numérotation avec chaque four. J'ai réussi à ajouter une clause where pour cela. Cependant, si deux éléments ou plus ont la même priorité avant la mise à jour (et commencent donc en même temps), ils doivent avoir la même priorité après la mise à jour. Comment puis-je faire cela? Jusqu'à présent, j'ai: Mise à jour tblTable = Définir la priorité \t (SELECT COUNT (*) \t De tblTable \t Où start_date <= T.Start_Date et \t convert (datetime, start_date, 101)> = @ CutoffDate et Furnace_Name = T.Furnace_Name) De la table T –