Je travaille sur des emplacements de type application. J'ai donc un ensemble d'enregistrements fait descendre comme ci-dessous: Implémentation de la logique sql pour une exigence gênante
Select Ways.*, ErrorFlag
from Ways with(no lock)
inner join Locations with(no lock)
on Locations.WayId = Ways.WayId
En jeu ci-dessus, je vais obtenir tous les moyens qui ont des emplacements.
J'ai maintenant besoin de montrer un drapeau à chaque manière telle que
condition 1) Si l'emplacement de la voie ne suit pas ses règles.
Règle que chaque emplacement doit avoir l'heure de début < heure de fin. Donc, maintenant j'ai juste un algo avec moi car je ne suis pas très bon dans l'implémentation des requêtes.
Pour le jeu de résultats que j'ai déjà, Étape 1) Je vais créer une fonction qui recevra un WayId qui est déjà dans le jeu de résultats.
L'étape 2) sélectionne toutes les localisations de la table des emplacements où wayid est = @WayId.
Étape 3) Parcourez chaque rangée d'identifiants d'emplacements sélectionnés à l'étape 2 et vérifiez si heure de début> heure de fin et si elle dit oui, elle reviendra vraie autrement elle continuera à avancer et après avoir traversé chaque row, Il retournera faux.
Comment dois-je l'implémenter? Pourriez-vous suggérer quelque chose? Ou si vous avez une meilleure approche. S'il vous plaît faire partager un exemple de requête qui deviendra un peu facile pour moi de comprendre ..
structure Le tableau est ci-dessous:
façons
WayId colorcode weight length
1 red 50 500m
2 blue 100 200m
Emplacements
LocationId WayId Starttime Endtime
1 1 12:00AM 11:00AM
2 1 1:00 PM 2:00 PM
3 1 3:00 PM 4:00PM
sortie : La sortie ci-dessous est nécessaire comme Way avec WayId = 1 ont des emplacements donc il affichera mais avec id = 2 n'a pas d'emplacements donc il ne sera pas affiché.
2) La voie a trois endroits il comptera et montrer
3) La manière doit montrer ErrorFlag = true comme l'un de ses emplacements ont le temps de démarrage plus que le temps final.
WayId colorCode weight length ErrorFlag Locations
1 red 50 500 true 3
Comment décidez-vous que minuit est supérieur à 11h00? – dfundako
Quel est le type SQL des colonnes 'Starttime' et' Endtime' dans votre table 'Locations'? – 3N1GM4