資料庫分組求和語句

2021-12-29 21:10:08 字數 1165 閱讀 5117

表包含三列,[id]   ,[countno],[type],id 表示倉庫編號,countno表示貨物數量,[type]表示貨物型別

現在要求統計每個倉庫各個貨物的數量,包含四列倉庫編號,貨物1的數量,貨物2的數量,貨物3的數量..貨物n的數量。

1 第一種方法,使用inner join和as給表取別名,語句如下:

[sql]

select a.id ,sum(a.countno) countno1,sum(b.countno) countno2 ,sum(c.countno)  countno3  

from [table_1] as a   

inner join [table_1] as b on a.id=b.id  

inner join [table_1] as c on a.id=c.id  

where a.type=1 and b.type=2.and c.type=3   

group by a.id  

或者是iner join的另外一種寫法

[sql]

select a.id ,sum(a.countno),sum(b.countno),sum(c.countno)   

from [table_1] as a ,  

[table_1] as b   

,[table_1] as c  

where a.type=1 and b.type=2 and c.type=3 and a.id=b.id and a.id=c.id  

group by a.id,a.type  

2使用case when方法,語句如下

[sql]

select a.id ,  

sum(case  when type=1 then countno else 0 end),  

sum(case  when type=2 then countno else 0 end),  

sum(case  when type=3 then countno else 0 end)  

from [table_1] as a group by a.id  

這兩種方式其實都是假定貨物種類是確定的,如何貨物種類不確定,或者經常變動,如何操作?就需要借助於游標或者臨時表之類的複雜語句了。  

摘自 xuexiaodong2009的專欄

Mysql資料庫分組

擷取字段 進行資料庫分組 select ts time count ts time from inform analysis where ts time 2010 01 01 and ts time 2010 02 23 group by substring ts time 1,10 linux批量...

資料庫語句

1.case,when,else小例子 selecte as x case when then good else bad as from table 比如 select case when highercode 1 then 省會 else 不知道 end as detail code as 地區...

資料庫語句

資料庫語句 ddl語句 data definition language 即資料庫定義語言 ddl語句包含create alter drop等常用語句 資料庫操作 檢視資料庫 show databases 2.建立資料庫 create database 資料庫名 例項名 3.切換 選擇資料庫 use...