表3的姓名中應該包括所有出現在表1和表2姓名中的記錄,如果某人在表1中沒出現,則相當於創收為0;同樣如果某人在表2中沒出現,則相當於花費為0.
再舉例table1
姓名 創收
a 2000
c 300
a 200
table2
姓名 花費
a 400
b 20
d 200
現在想得到乙個綜合結果,如下
姓名 創收 花費
a 2200 400
b 0 20
c 300 0
d 0 200
select isnull(a.姓名,b.姓名) as 姓名,a.創收,b.花費
from
( select table1.姓名,sum(table1.創收) 創收
from table1
group by table1.姓名
) as a
full outer join
(select table2.姓名,sum(table2.花費) 花費
from table2
group by table2.姓名
) as b
on a.姓名=b.姓名
(或者第一行為)
select isnull(a.姓名,b.姓名) as 姓名,isnull(a.創收,0) as 創收,isnull(b.花費,0) as 花費
否則有些查詢出來的創收或花費為 null ,也許你需要他們為 0.
SQL 內連線,外連線(左外連線 右外連線)
參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...
SQL 內連線,外連線
假設一堆男女在教堂,有夫婦有單身的,假設男為左表,女為右表 教父說 結了婚的人請出去,結了婚的人請手拉手,於是結了婚的男女站了起來,這就是inner 內連 教父說 男的並且和這些男的結婚的女的請出去,結了婚的人請手拉手,於是,結了婚的夫婦手拉手出去,單身的男的也出去了。這就是 left 左連 教父說...
SQL 內連線 外連線
通過where 或者 inner join保留表中的一部分,最直觀就是說 表在選擇投影後,得到的各個元組內的元素都不會是空的。inner join 表中至少乙個匹配時,返回行。左連線 即使右表中沒有匹配,也從左表中返回所有行。因次,元組中的元素若有來自右表,則該元素為空。右連線 即使左表中沒有匹配,...