一張單位表unit:
id name
1 中石油
2 中移動
3 電信
另一張表info:
id unitid num point
1 1 1 2
2 1 2 1
3 2 1 1
4 3 2 2
若num=1時 得1分 若num=2時 得3分
若point=1時 得1分 若point=2 得3分
還有在info表中有單位紀錄一條得1分
希望得到的表如下
name 得分
中石油 10
中移動 3
電信 7
例舉第一條10分的計算(計算方式(在info表unitid為1時有兩條加2分,其中num乙個為1乙個為2所以加4分,point乙個為2乙個為1所以再加4分,總為10分)
)select
a.name,
sum(
case
when
b.num =1
then
1when
b.num =2
then
3else
0end)+
sum(
case
when
b.point=1
then
1when
b.point=2
then
3else
0end)+
sum(
case
when
b.unitid
isnot
null
then
1else
0end
) as
得分from
unit a
left
join
info b
onb.unitid
=a.id
group
bya.name
left join *** on *** where
運用:select top 1 @rex=rex,@rey=rey,@rej=rej,@typex=typex,@typem=typem,@typeo=typeo,@stateq=stateq,@statej=statej,@casenum=casenum from t_assesspoint
if(@time1=null or @time1='' )
select a.unitname,sum(case when b.casecheckid = 1 then @rex when b.casecheckid = 2 then @rey when b.casecheckid=3 then @rej else 0 end)
+ sum(case when b.casetypeid= 1 then @typem when b.casetypeid= 2 then @typex when b.casetypeid=3 then @typeo else 0 end)
+sum(case when b.casestatus=1 then @stateq when b.casestatus=2 then @statej else 0 end)
+ sum(case when b.unitid is not null then @casenum else 0 end) as number
from t_unit a left join t_case b
on b.unitid = a.id where a.id in (select * from dbo.splitstr(@unitid,','))
group by a.unitname order by number desc
4 2 2 計算資料
4.2.2 計算資料 在這個應用程式的第乙個版本中,我們將只列印標籤,以及圖表中每一項所佔比例 百分比 要計算百分比,就需要知道列表中所有專案數值總和,這個值用清單 4.4 中的函式 calculatesum 來計算。清單 4.4 計算列表中的數值和 f interactive let rec ca...
SQLServer常用的執行計算 資料訪問操作符
1.scan及示例分析 scan依據表的不同,可以分為table scan,cluster index scan,以及針對非聚集索引的non clustered index scan這三種操作。聚集索引掃瞄 cluster index scan 將表中所有資料行都存在於聚集索引的葉節點中,所以,聚集...
python 計算資料的相關性
先解釋下什麼叫資料的相關性 計算兩個陣列的平均值,如果兩個陣列中的兩個值都大於平均值或者都小於平均值,則得到true.如果乙個大於平均值乙個小於平均值,則得到false.最後計算true和false的個數.比如,兩個陣列 1,2,3,4 and 4,5,6,7 得到 4,0 因為 1 和 4 都低於...