1樓:匿名使用者
醉含笑的很牛,不過sum(pay)有點需要改動最終完美版:
select min(id) as 序號,max(dept) as 部門,
sum(case when zt='01' or zt='02' then pay else 0 end) as 合計,
sum(case zt when 01 then 1 else 0 end) as 個數01狀態,
sum(case zt when 02 then 1 else 0 end) as 個數02狀態,
count(zt) as 總數
from aac
group by dept
2樓:醉含笑
select min(id) as 序號,
max(dept) as 部門,
sum(pay) as 合計,
sum(case zt when '01' then 1 else 0 end) as 個數01狀態,
sum(case zt when '02' then 1 else 0 end) as 個數02狀態,
count(zt) as 總數
from 表名
group by dept
這段**是sqlserver和oracel通用,其中「表名」的地方,換成你的表名
喔看掉了這個條件:我現在想統計01、02兩種狀態的數量和pay合計
還是 zjwssg提醒,但最後兩個sum中when後面,建議還是加單引號吧
把上面的**改為這樣應該沒問題了
select min(id) as 序號,
max(dept) as 部門,
sum(case when zt='01' or zt='02' then pay else 0 end) as 合計,
sum(case zt when '01' then 1 else 0 end) as 個數01狀態,
sum(case zt when '02' then 1 else 0 end) as 個數02狀態,
count(zt) as 總數
from 表名
group by dept
3樓:我tm不管
select dept as 部門,sum(pay) as 合計,sum(case zt when '01'then 1 else 0 end) as 個數(01狀態),
sum(case zt when '02'then 1 else 0 end) as 個數(02狀態),count(*) as 總數
from 表 group by dept
以上,希望對你有所幫助
4樓:
select
row_number() over(order by a.dept) 序號,
a.dept 部門,
a.合計,
b.個數01,
c.個數02,
d.總數
from
(select dept,sum(pay) 合計 from t where zt='01' or zt='02' group by dept) a,
(select dept,count(pay) 個數01 from t where zt='01' group by dept) b,
(select dept,count(pay) 個數02 from t where zt='02' group by dept) c,
(select dept,count(pay) 總數 from t group by dept) d
where a.dept=b.dept and b.dept=c.dept and c.dept=d.dept
參照樓上的寫法,改進一下有:
select
row_number() over(order by dept) 序號,
dept as 部門,
sum(case when zt='01' or zt='02' then pay else 0 end) 合計,
sum(case when zt='01' then 1 else 0 end) as 個數01狀態,
sum(case when zt='02' then 1 else 0 end) as 個數02狀態,
count(*) as 總數
from t
group by dept
5樓:匿名使用者
如果你用的是sql server可以:
select 序號=identity(int,1,1),dept as 部門,sun(pay) as 合計,sum(case when zt='01' then 1 else 0 end) as 個數01狀態,sum(case when zt='02' then 1 else 0 end) as 個數02狀態,count(*) as 總數 into #tmp_total from yourtablename group by dept
select * from #tmp_total 就得到你要的效果了你要說是在什麼資料庫下,資料庫不同寫法也是有一定差別的
6樓:世界大同喵
create table tb (id int,dept varchar(10),pay int,zt int)
insert tb select 1,'辦公室',20,1
union all select 2,'局領導',10,2
union all select 3,'辦公室',40,3
union all select 4,'局領導',10,1
union all select 5,'辦公室',50,1
union all select 6,'局領導',10,2
union all select 7,'辦公室',20,2
union all select 8,'局領導',10,2
select identity(int,1,1) as 序號,
dept as 部門,
sum(case when zt='01' or zt='02' then pay else 0 end) 合計,
sum(case when zt='1' then 1 else 0 end) 個數01狀態,
sum(case when zt='2' then 1 else 0 end) 個數02狀態,
count(*) as 總數 into #temp from tb group by dept
select * from #temp
7樓:匿名使用者
select a.dept,a.pay,c.[01],c.[02],b.ztnum
from
(select dept,sum(pay) as pay from table_1 where zt in(01,02) group by dept
)aleft join
(select dept,count(zt) as ztnum from table_1 group by dept
) bon a.dept=b.dept
left join
(select *
from
(select dept,zt,count(zt) as ztnum from table_1 where zt in(01,02) group by dept,zt)a
pivot
(sum(a.ztnum)
for a.zt in ([01],[02])
) as tpivot
) con b.dept=c.dept
韓文日常用語,韓語的日常用語
好久不見了 沒關係 多少錢?對不起 對不起 我愛你 見到你很高興 吃飯了嗎?很好吃 很帥 肚子很痛 心情很好 發燒了 我拉肚子了 失禮了 請坐 肚子餓 鞋子很漂亮 漂亮。可愛。好吃。冷 熱 好 喜歡 不要 討厭 多少錢?在哪?幾點?我的名字叫 見到你很高興。我是中國人。你好。平安。再見。你好。平安。...
俄語日常用語發音俄語日常用語發音
你好!近似讀音 普里熱特 謝謝!近似讀音 是吧洗把 再見!近似讀音 打死非打你呀 不客氣!近似讀音 列 咋斯托 回答者 11 01 2010 新年好!斯 諾威木 高達姆!聖誕快樂!斯 達爾日斯特沃姆!你好!普利維特!晚安!斯波高依 鬧齊!常用俄語近似發音 紅色斜字讀重音 您好!你們好!只得拉斯特附議...
日語常用語帶中文諧音,日語常用語的中文諧音有哪些?越多越好!
日常篇初 中文類似發音 哈 3聲 吉梅媽希te 初次見面 解說 兩個人第一次見面的時候問候用語 中文類似發音 有樓希苦 請多關照 解說 客套話的一種,經常能聽到或看到。比較客氣的說法是在後面加上 願 例子 鬼冢在黑板上寫的大大的自己名字 gto 中文類似發音 歐哈優go災以媽斯 早上好解說 早上見面...