2012-04-02 2 views
1

Что я пытаюсь сделать, это следующее: -Sql присоединяется Показано, доступные только раз

Запрос моя база данных, чтобы показать только временные интервалы, которые не были использованы и заполнить его в раскрывающемся списке. (Я знаю, как заполнить его в раскрывающемся списке.)

Это то, что у меня есть: - (таблицы)

 Appointment:-    Availability:- 
    AppointmentTime   AvailabilityTime 
    AppointmentDate   EmployeeId 
    ClientID 
    EmployeeId 

Из исследования вокруг я довольно уверен, что я должен иметь присоединиться в моей инструкции SQL.

Для меня логичным способом сделать это является то, что для достижения того, что я хочу, мне нужно проверить идентификатор AvailabilityTime и сотрудника с ним в таблице встреч, а если нет совпадения, это должно означать, что выбранное назначение время бесплатное, поэтому это дает основания для отображения всех доступных свободных слотов.

Проблема в том, что я не совсем уверен, как это сделать SQL-мудрый, любые предложения были бы высоко оценены!

+0

Можете ли вы разместить некоторые данные образца и желаемый о/р – Teja

ответ

1

Я думаю, что ваша схема испорчена (у вас есть время в одной таблице, а дата & раз в другой). Но суть была бы примерно такой:

SELECT * 
FROM Availability 
WHERE NOT EXISTS 
(
    SELECT 1 
    FROM Appointment 
    WHERE Appointment.AppointmentTime = Availability.AvailabilityTime 
     AND Appointment.EmployeeID = Availability.EmployeeID 
) 
Смежные вопросы