我一直在尋找如何做這些工作幾天 - 不幸的是我沒有太多的SQL查詢經驗,所以這是一個試驗和錯誤。加入兩個表 - 一個具有不同值的常見列
基本上,我創建了兩個表格 - 都帶有一個DateTime列和一個不同的列,其中的值爲。 DateTime列在每個表中具有不同的值。
所以......
ACOQ1 (Table 1)
===============
| DateTime | ACOQ1_Pump_Running |
|----------+--------------------|
| 7:14:12 | 1 |
| 8:09:03 | 1 |
ACOQ2 (Table 2)
===============
| DateTime | ACOQ2_Pump_Running |
|----------+--------------------|
| 3:54:20 | 1 |
| 7:32:57 | 1 |
我想這兩個表結合起來,看起來就像這樣:
| DateTime | ACOQ1_Pump_Running | ACOQ2_Pump_Running |
|----------+--------------------+--------------------|
| 3:54:20 | 0 OR NULL | 1 |
| 7:14:12 | 1 | 0 OR NULL |
| 7:32:57 | 0 OR NULL | 1 |
| 8:09:03 | 1 | 0 OR NULL |
我已經通過創建第三個表「UNION的兩個表,然後將DateTime列使用了第三個表的日期時間列的新表,但不知道是否有跳過這個方式來實現這走出去。 (最終,我將從不同的表中添加越來越多的列,並且不希望通過創建可能不必要的聯合DateTime表添加更多的處理時間)。此刻
我的工作代碼:
CREATE TABLE JointDateTime
(
DateTime CHAR(50)
CONSTRAINT [pk_Key3] PRIMARY KEY (DateTime)
);
INSERT INTO JointDateTime (DateTime)
SELECT ACOQ1.DateTime FROM ACOQ1
UNION
SELECT ACOQ2.DateTime FROM ACOQ2
SELECT JointDateTime.DateTime, ACOQ1.ACOQ1_NO_1_PUMP_RUNNING, ACOQ2.ACOQ2_NO_1_PUMP_RUNNING
FROM (SELECT ACOQ1.DateTime FROM ACOQ1
UNION
SELECT ACOQ2.DateTime FROM ACOQ2) JointDateTime
LEFT OUTER JOIN ACOQ1
ON JointDateTime.DateTime = ACOQ1.DateTime
LEFT OUTER JOIN ACOQ2
ON JointDateTime.DateTime = ACOQ2.DateTime
不要使用'CHAR'來存儲日期 – ughai
我應該用什麼來代替?它目前將其存儲爲2015年5月11日07:14:12所以可能仍然需要這種格式。 – chrisj91
使用'datetime',並使用'convert'或'format'。你使用的是哪個版本的sql server? – ughai