3 Réponses :


7
votes

Vous devez avoir une table prépondule (ou une fonction renvoyant un ensemble de résultats de table) pour rejoindre, contenant toutes les emplacements de 1 heure que vous souhaitez dans votre résultat.

alors vous faites une jointure extérieure avec Cela, et vous devriez les faire tous.

quelque chose comme ceci: xxx


2 commentaires

Je crois que vous pouvez également remplacer onehourslots avec quelque chose comme (Sélectionnez 0 comme Slot_hour Union Select 1 comme Slot_hour Union ..) - Seulement si vous étiez mort pour le garder dans un Requête simple si - Yuck: p


Vous pouvez faire cela encore plus facile des utilisateurs généraux_series () (en supposant que vous êtes sur Postgers, que les balises disent que vous êtes, mais l'exemple de requête ne fonctionnerait pas là ..)



2
votes

Créer une table d'heures, a persisté ou même synthétisé "à la volée": xxx


0 commentaires

10
votes

Certaines des réponses précédentes recommandent d'utiliser une table d'heures et de la renseigner à l'aide d'une requête union; Cela peut être mieux fait avec une expression de table commune: xxx


2 commentaires

+1 pour le tour Sys.Objects. Un jour, ils expédieront une version qui ne montre que des objets utilisateur avec accès à Sys.Objects et déplacez les objets système dans SYS.All_Objects, Jut pour ruiner vos scripts lol


J'espère que ce sera la version qui a une table de chiffres ( sqlserver2000.databases.aspfaq.com/... ). Vous n'aurez donc pas besoin de hacks comme celui-ci