將同一張表出來的兩部分內容再合成一張表

2022-03-08 22:01:34 字數 2621 閱讀 3231

--

業務單成功率(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,...