2017-07-04 79 views
-1

我有三個表格:Table_A,Table_B和Table_C。SQL - 基於三個不同表格定義觀察日期

每個表格包含三個變量 - ID,問題和日期。日期可能會或可能不會在表格中缺失。

我需要創建一個新的表格,以便所有的觀察都有一個日期。實現此目的的規則:對於Table_A中的所有ID /問題對,Table_A中的Date將用作Date存在的日期。否則,將使用Table_B和Table_C中的最小日期。如果在所有表格中缺少日期,則放棄觀察。

SELECT ID, Problem, MIN(Date) as Date FROM ( SELECT ID, Problem, Date FROM Table_A UNION ALL SELECT ID, Problem, Date FROM Table_B UNION ALL SELECT ID, Problem, Date FROM Table_C ) as subQuery Delete From table Where Date IS NULL

+0

它是MySQL或SQL的服務器? –

+0

這是MySQL。你能幫我嗎? – Harriss

+0

@juergend有什麼我可以另外提供? – Harriss

回答

0

如果我理解正確的話,這可能讓你開始:

select id, problem, `date` from table_a where `date` is not null 
union 

select id, problem, min(`date`) 
from (
    select id, problem, date from table_b where `date` is not null 
    union all 
    select id, problem, date from table_c where `date` is not null 
    ) d 
group by id, problem