⑴ sql 分類匯總查詢語句
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
以上,希望對你有所幫助
⑵ SQL 語句的分類匯總
select * from table group by subject,title,name order by subject,title,name
⑶ SQL查詢語句,分類,匯總
創建測試表,插入數據
createtabletast
(序號int,
姓名varchar(10),
電話卡號varchar(20),
卡類型varchar(10))
insertintotastvalues(1,'張三','1000000000','移動')
insertintotastvalues(2,'張三','1000000001','移動')
insertintotastvalues(2,'張三','1000000002','移動')
insertintotastvalues(4,'張三','1000000003','聯通')
insertintotastvalues(5,'張三','1000000004','聯通')
insertintotastvalues(6,'李四','1000000004','聯通')
insertintotastvalues(7,'李四','1000000005','聯通')
insertintotastvalues(8,'李四','1000000006','移動')
insertintotastvalues(9,'王麻','1000000007','移動')
insertintotastvalues(10,'王麻','1000000008','移動')
insertintotastvalues(11,'王麻','1000000010','移動')
insertintotastvalues(12,'王麻','1000000011','聯通')
運行:
selectcasewhena.電話卡號=b.電話卡號thena.姓名else''end姓名,a.電話卡號,a.卡類型
fromtastaleftjoin
(select姓名,min(電話卡號)電話卡號fromtastgroupby姓名)b
ona.電話卡號=b.電話卡號anda.姓名=b.姓名
結果:
⑷ sql語句分類匯總,排序查詢語句怎麼實現
select商品id,sum(商品數量)商品數量from表名groupby商品idorderbysum(商品數量)desc
這樣試試
⑸ 關於使用sql語句sum(case when……)來實現分類匯總功能
有兩處有筆誤,如果結果不同的話,需要檢查一下,先對比下總金額,再對比各個的銷售額,再檢查姓名是否完全一致,EXCEL中經常有前後空格或是不容易顯示出來的字元會有影響,用select 月份,姓名,sum(銷售數量*產品單價) from 表格 group by 月份,姓名
例如:
select
月份,
sum(casewhen銷售人員='姓名1'then銷售數量*產品單價else0end)as姓名1銷售額,
sum(casewhen銷售人員='姓名2'then銷售數量*產品單價else0end)as姓名1銷售額,
sum(casewhen銷售人員='姓名3'then銷售數量*產品單價else0end)as姓名1銷售額
from表格
groupby月份,銷售人員
(5)sql語句分類匯總擴展閱讀:
注意事項
case when有用兩種用法如下:
用法一:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
用法二:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
⑹ SQL語句實現分類匯總的方法
Select id, isNull(sum(case when value>aa then num end),0) as 'sum_num_of_value>aa' ,
isNull(sum(case when value<aa then num end),0) as 'sum_num_of_value<aa'
from abc
group by id
⑺ SQL 分類匯總查詢語句
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
⑻ 怎麼用SQL語句對表【收支表】進行分類匯總
--建立測試表 並插入數據
-- 執行一個查詢 ,你可以寫在一個存儲過程裡面,我困了,不過格式按照你說的寫好了
CREATETABLETB
(說明NVARCHAR(20)
,
類別NVARCHAR(20),
金額INT,
款項類別NVARCHAR(20)
)
INSERTINTOdbo.TB
(說明,類別,金額,款項類別)
VALUES(N'項目A',--說明-nvarchar(20)
N'支出',--類別-nvarchar(20)
900,--金額-int
N'費用B'--款項類別-nvarchar(20)
)
INSERTINTOdbo.TB
(說明,類別,金額,款項類別)
VALUES(N'項目A',--說明-nvarchar(20)
N'收入',--類別-nvarchar(20)
2000,--金額-int
N'收入A'--款項類別-nvarchar(20)
)
INSERTINTOdbo.TB
(說明,類別,金額,款項類別)
VALUES(N'項目B',--說明-nvarchar(20)
N'支出',--類別-nvarchar(20)
3500,--金額-int
N'費用C'--款項類別-nvarchar(20)
)
INSERTINTOdbo.TB
(說明,類別,金額,款項類別)
VALUES(N'項目C',--說明-nvarchar(20)
N'支出',--類別-nvarchar(20)
200,--金額-int
N'費用D'--款項類別-nvarchar(20)
)
INSERTINTOdbo.TB
(說明,類別,金額,款項類別)
VALUES(N'項目A',--說明-nvarchar(20)
N'支出',--類別-nvarchar(20)
300,--金額-int
N'費用A'--款項類別-nvarchar(20)
)
CREATETABLE#temp
(
說明NVARCHAR(20),
類別NVARCHAR(20),
金額INT,
款項類別NVARCHAR(20)
)
INSERTINTO#temp
SELECT*
FROMdbo.TB
UNIONALL
SELECT說明,
CASEWHEN說明ISNOTNULLTHENISNULL(類別,'收支凈值')
ELSE類別
END+'合計'AS類別,
SUM(CASEWHEN類別='收入'THEN金額
ELSE-金額
END)AS金額,
MAX(款項類別)AS款項類別
FROMTB
WHERE說明ISNOTNULL
GROUPBYROLLUP(說明,類別)
ORDERBY說明INSERT#temp
SELECTB.*
FROM(SELECTDISTINCT
說明,
'收入合計'AS類別,
0AS金額,
''AS款項類別
FROM#temp
WHERE說明ISNOTNULL
)B
WHEREB.說明+B.類別NOTIN(SELECT說明+類別
FROM#temp
WHERE說明ISNOTNULL)
INSERT#temp
SELECTB.*
FROM(SELECTDISTINCT
說明,
'支出合計'AS類別,
0AS金額,
''AS款項類別
FROM#temp
WHERE說明ISNOTNULL
)B
WHEREB.說明+B.類別NOTIN(SELECT說明+類別
FROM#temp
WHERE說明ISNOTNULL);
WITHtt
AS(SELECT說明,
類別,
CASEWHEN類別='支出合計'THENABS(金額)
ELSE金額
ENDAS金額,
CASEWHEN類別='收入'
OR類別='支出'THEN款項類別
ELSE''
ENDAS款項類別,
CASEWHEN類別='支出'THEN1
WHEN類別='收入'THEN2
WHEN類別='收入合計'THEN3
WHEN類別='支出合計'THEN4
WHEN類別='收支凈值合計'THEN5
ELSE6
ENDASnum
FROM#temp
WHERE說明ISNOTNULL
)
SELECTtt.說明,
tt.類別,
tt.金額,
tt.款項類別
FROMtt
ORDERBY說明,
num
DROPTABLE#temp