2016-01-08 3 views
-1

Может ли кто-нибудь указать мне в правильном направлении, что я должен делать, чтобы сравнить результат этих двух запросов?Сравнение 2 SQL Query Результат из двух разных таблиц

Я хочу знать, если результаты идентичны друг другу

Я планирую создать СП, который будет определять первый, если результат 2 запросов такие же, прежде чем вставить его в таблицу.

Запрос 1:

SELECT TOP 10 
    EventName, EventDate 
FROM 
    EventTBL 
WHERE 
    EventType ='Bday' 
    AND EventDate >= getdate() -30 

Запрос 2:

SELECT 
    (Ename + ' ' + Lname), 
    DATEADD(YY, DATEPART(YYYY, GETDATE()) - 
    DATEPART(YYYY,dateOfBirth), dateOfBirth) 
FROM 
    EmpTBL 
WHERE 
    DATEADD(Year, DATEPART(Year, GETDATE()) - 
     DATEPART(Year, DateOfBirth), DateOfBirth) 
    BETWEEN CONVERT(DATE, GETDATE()) 
     AND CONVERT(DATE, GETDATE() + 30) 
+3

Использовать теги dbms. (Некоторые не ANSI SQL там ...) – jarlh

+0

Какое сравнение? Эмп имя мудрый? вы можете публиковать результаты. – minatverma

+1

Самый простой способ сравнения наборов - использовать операции набора, например. 'SELECT # 1 EXCEPT SELECT # 2' приводит к пустому набору, если все строки в' SELECT # 2' также существуют в 'SELECT # 1'. – dnoeth

ответ

0

Я предлагаю вам построить один SQL, где вы присоединиться обе таблицы, и в зависимости от результата выполнения действия вы хотите.

Пример:

SELECT 
    event.EventName as eName, event.EventDate as eDate, 
    emp.Ename + ' ' + emp.Lname as empName, emp.empdateOfBirth as empBirth 
FROM 
    EventTBL event INNER JOIN EmpTBL emp ON event.pk = emp.fk 

Если две таблицы не присоединились вы могли бы присоединиться в некоторых других областях

SELECT 
    event.EventName as eventName, event.EventDate as eventDate, 
    emp.Ename + ' ' + emp.Lname as empName, emp.empdateOfBirth as empBirth 
FROM 
    EventTBL event INNER JOIN EmpTBL emp ON evnt.eventDate = emp.empBirth 

Вы также можете использовать DATEADD/DATEDIFF на поля даты, чтобы сделать некоторые специальные даты сравнение. Не забудьте индексировать эти поля даты, чтобы оптимизировать операцию соединения.

Добавить предложение WHERE и, возможно, дополнительное предложение для соединения, и вы получите результат, который вы ищете.

Используйте SQL-синтаксис СУБД для его создания в вставку, если вы хотите сохранить результат. Это может быть: INSERT INTO - SELECT FROM, SELECT - INTO - FROM или другой синтаксис SQL в зависимости от ваших потребностей и СУБД. Если результат запроса не содержит строк, вставка не будет выполнена.

Смежные вопросы