2017-01-16 2 views
0

OK, troisième fois que vous essayez d'écrire ceci. Essentiellement je dois faire une requête qui permet de vérifier par une table et assurer qu'une valeur dans chaque enregistrement ne correspond pas à une valeur dans un enregistrement d'une requêteLa valeur n'est pas dans le résultat de la requête

Présentation

Requête 1 recherches par Réservations où: date de début < [ 'date de fin'] et de fin> [ 'date de début'] afficher l'annonce (réservation ID) et VID (ID du véhicule)

Query 2 recherches par réservations à nouveau, mais supprime tous les enregistrements qui ont même VID que les résultats de la requête 1

le problème se produit où dans la requête 2, si plus de 1 résultat est affiché dans la requête 1, alors il affiche simplement la table entière des réservations.

J'utilise actuellement:

Field: VID 
Table: Bookings 
Criteria: <>[Query1].[VID] 

j'ai essayé de comprendre cette méthode pour les 2 derniers mois et ai toujours pas obtenu plus loin. toute méthode que j'essaie d'accomplir la tâche ne fonctionne que dans certains cas. Essentiellement, j'essaie de créer une requête pour voir si un véhicule est disponible à la location pour une plage de dates spécifique.

Toute aide est vraiment appréciée.

Nous vous remercions à l'avance

Répondre

0

Il serait utile de voir vos tables. Je suppose que votre tableau des réservations montre quand les véhicules ont été réservés pour la location? Alors, avez-vous une table séparée des véhicules? Si oui, alors pour voir quels véhicules sont disponibles à la location pour une période donnée, ce dont vous avez réellement besoin est de sélectionner des entrées dans la table Véhicules où le VID n'est pas dans [Requête 1]. Ce sera écrit comme:

select * from Vehicles where VID Not In (select VID from Query1) 
0

Il est facile de transformer ces choses dans une machine de Rube Goldberg si vous ne faites pas attention. Il me semble que c'est un processus que vous utilisez pour assurer l'intégrité des données dans votre base de données? Si tel est le cas, je recommande l'automatisation de ce processus par quelques méthodes différentes:

  • Si vous utilisez backend SQL, définissez une instruction conditionnelle pour le champ VID
  • Si la table est dans Access, utilisez la validation Règle sous la section des propriétés
    pour le champ souhaité
  • Ou bien, d'avoir une clé composite pour les deux champs.