Выберите и сравните два столбца Datetime из другой таблицы, не имея никакого отношения - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть две таблицы с форматом ниже

**Table1**

"date_Time1"    
"2018-09-13 04:27:00.000"  
"2018-09-13 04:28:00.000"

**Table2**   
"date_Time2"    
"2018-09-13 04:27:00.000"  
"2018-09-13 04:29:00.000"

Теперь я хочу объединить обе эти таблицы независимо от того, совпадает ли дата и время. Результат должен понравиться

+--------------------------+---------+
| Date_Time                | Is_match|   
+--------------------------+---------+
|"2018-09-13 04:27:00.000" |  True   |      
|"2018-09-13 04:28:00.000" |  False  |
|"2018-09-13 04:29:00.000" |  False  |              
+-----------------------------------+

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Вы можете попробовать ниже запрос

select coalesce(t1.date_time1,t2.date_time2) as Date_Time ,
case when t1.date_time1 = t2.date_time2 then 'True'  else 'False'  end as Is_Match
from  table1 t1 full outer join table2 t2 on t1.date_time1=t2.date_time2
0 голосов
/ 01 ноября 2018

Другой возможный подход, который найдет повторяющиеся даты между двумя таблицами и возможные повторяющиеся даты в каждой таблице:

WITH cte (date_time) AS (
    SELECT date_time1
    FROM DateTimeTable1
    UNION ALL
    SELECT date_time2
    FROM DateTimeTable2
)
SELECT 
    date_time, 
    CASE 
        WHEN COUNT(*) > 1 THEN 'True'
        ELSE 'False'
    END AS is_match
FROM cte
GROUP BY date_time
ORDER BY date_time
0 голосов
/ 01 ноября 2018

Попробуйте это:

SELECT ISNULL(t1.Date_Time,t2.Date_Time) AS Date_Time,
       CASE WHEN t1.Date_Time=t2.Date_Time THEN 'True' ELSE 'False' END AS Is_Match
FROM Table1 t1
OUTER JOIN Table2 t2 ON t1.Date_Time=t2.Date_Time
...