有三幾個表table1 table2 table3 分別儲存了每天夜、白、中三個班的生產記錄;
三個表結構相同:c1(日期) , c2 (產量) ,兩列均可為空;並且三個表中的日期並非一一對應;
現在希望通過sql語句獲得查詢結果記錄:日期 、夜班產量、白班產量、中班產量;
下面給出oracle環境下的查詢語句:
select nvl(nvl(t1.c1,t2.c1),t3.c1) , t1.c2 , t2.c2 , t3.c2這裡主要需要注意的地方是藍色字型部分,由於第一次外連線的結果中兩個c1都可能為空,from table1 t1 full outer join table2 t2 on ( t1.c1=t2.c1)
full outer join table3 t3 on ( t3.c1=t2.c1 or t3.c1=t1.c1) ;
第二次連線根據要求,應該是只要和其中乙個c1相等(同一天)就應該將兩條記錄放在一起。
另外外連線 on 關鍵字是必須的,不能試圖用where來代替
也有另外的表達方式,可以用子查詢的方式,先兩個表做全外連線,其查詢結果再同第三個表做全外連線,再第四個……
用乙個表中的一列值更新另外一表中的一列值
今天寫乙個小儲存過程,呵呵!功能大家試一下就知道了。create proc proc test uid int 0 output,uname nvarchar 50 null output asbegin declare dd cursor scroll for select uid,uname f...
三個自我的對話和陪同(一)
今天又是新的一天,已經是月底最後一天了,翻開日曆明天就是7月的開始,然後就是想著十月的到來!夏天持續乙個月的大雨過去了 接著每天早晨迎接而來的都是燦爛得耀眼的太陽,稍稍走走路,背脊就會微微出汗。感覺夏日的陽光特別漫長,大抵是因為乙個白天都要自己陪自己度過吧 對著日記本寫日記,相當於是對自己說話 對著...
mysql中為同一張表取多個別名 為某一列取別名
select employee1.name as employee from employee employee1,employee employee2 where employee1.managerid employee2.id and employee1.salary employee2.sal...