--這樣可以把沒有資料的員工也顯示出來業務單成功率(eg:辦公的成功的/辦公的全部的)
select t1.[
ci_designerid
],t2.[
ci_designerid
],t3.u_id,
t1.辦公成功的單子數 bgc,t2.辦公全部的單子數 bgq,
t1.餐飲成功的單子數 cyc,t2.餐飲全部的單子數 cgq,
t1.商業成功的單子數 syc,t2.商業全部的單子數 syq,
t1.酒店成功的單子數 jdc,t2.酒店全部的單子數 jdq,
t1.其他成功的單子數 qtc,t2.其他全部的單子數 qtq
from
--本表得到個人的各類的成功數
--ci_leixing是單子的型別,ci_state是單子的狀態,
--ci_xiaozuid是小組的id,[ci_designerid]是使用者id
(select
[ci_designerid
],
sum(case
when ci_leixing=
1then
1else
0end
) 辦公成功的單子數,
sum(case
when ci_leixing=
2then
1else
0end
) 餐飲成功的單子數,
sum(case
when ci_leixing=
3then
1else
0end
) 商業成功的單子數,
sum(case
when ci_leixing=
4then
1else
0end
) 酒店成功的單子數,
sum(case
when ci_leixing=
5then
1else
0end
) 其他成功的單子數
from
[db_zab
].[dbo
].[zab_clientinfo
]where ci_state=
7and ci_xiaozuid=
21and ci_timejd>
'2012-05-20
'and ci_timejd<
'2013-09-09
'and ([
ci_designerid
]in (select u_id from zab_userlist where u_zuhao=
1))
groupby[
ci_designerid
]) t1
left
join
--右連線,本表得到個人的各類的總數
(select
[ci_designerid
],
sum(case
when ci_leixing=
1then
1else
0end
) 辦公全部的單子數,
sum(case
when ci_leixing=
2then
1else
0end
) 餐飲全部的單子數,
sum(case
when ci_leixing=
3then
1else
0end
) 商業全部的單子數,
sum(case
when ci_leixing=
4then
1else
0end
) 酒店全部的單子數,
sum(case
when ci_leixing=
5then
1else
0end
) 其他全部的單子數
from
[db_zab
].[dbo
].[zab_clientinfo
]where ci_xiaozuid=
21and ci_timejd>
'2012-05-20
'and ci_timejd<
'2013-09-09
'and ([
ci_designerid
]in (select u_id from zab_userlist where u_zuhao=
1))
groupby[
ci_designerid
]) t2
ont1.[
ci_designerid
]=t2.[
ci_designerid
]right
join
--左鏈結根據小組id得到小用員工資訊
(select
*from zab_userlist where u_zuhao=
1) t3
on t1.ci_designerid=t3.u_id
結合繫結出來結果
自連線 通過表的別名,將同一張表視為多張表
自連線 通過表的別名,將同一張表視為多張表 sql select e.ename 的老闆是 b.ename 2 from emp e,emp b 3 where e.mgr b.empno e.ename 的老闆是 b.ename ford的老闆是jones scott的老闆是jones james...
更新同一張表的整列字段
先需要先把需要更新的整列結果查詢出來。這裡記錄下mysql時間的函式 date format 欄位名,y m d h i s 第二個引數是要轉換的格式,因為我本來的格式中有毫秒。以下是舉例 轉換的sql select id as dd,date format created,y m d h i s ...
mysql多次join同一張表的處理
場景 商品表中有不同的商品分類id,一級商品分類id 二級商品分類id,商品分類id 商品分類表中有分類id和分類名稱 兩張表要多次關聯查詢獲取不同等級的分類名稱 如果直接join是不行的,因為分類名稱會重名,但是只要給商品分類表起個別名就可以解決這個問題。select gc.goods name,...