惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 刚说

层次结构计量单位数据库设计以及组内组间转换率 不同计价方式对存货核算的影响 大数据量删除算法 .net操纵xml文件类(c#) WebWagon - An HTML Container Class asp.net1.1和asp.net 2.0共存 不敢相信吧!很灵的缘分配对软件! 免费动态网站空间申请(asp and asp.net and access or other)----(最新更新)收藏 哪位大虾给我找一个反编译工具 ASP遗留的二十大积习 Microsoft Visual Studio .NET 2005的更新 Windows死机密码 网站测试的郁闷 为Blog打造个性日历 XP安装全攻略---------(个性化) 看看C# 给asp.net 一个礼物 XP命令集 换换鼠标→看看怎么样
高效批量计量单位转换
刚说 · 2010-11-24 · via 博客园 - 刚说


/*
1.高效批量进行单位转换
2.实现按某一单位汇总
*/Declare @ToUOM BigInt --需要转换成的单位
Set @ToUOM=13--需要转换的数据,先放入临时表
If OBJECT_ID('tempdb..#DemoData') IS NOT NULL
DROP TABLE #DemoData
Select ID,Item,UOM,Qty as '转换前',CONVERT(Decimal(24,9),0) as '转换后' Into #DemoData From Base_BizData--生成 Item和单位的临时表(Item,UOM)
If OBJECT_ID('tempdb..#ItemUOM') IS NOT NULL
DROP TABLE #ItemUOM
Create Table #ItemUOM
(
Item
Nvarchar(50),

FromUOM

BigInt,--从单位
FromBUOM BigInt,--从单位基准单位
FromRatio Decimal(24,9),--从单位到从基准单位转换率

ToUOM
BigInt,--到单位
ToBUOM BigInt,--到单位基准单位
ToRatio Decimal(24,9),--到单位到从基准单位转换率

Ratio
Decimal(24,9),--转换率
BRatio Decimal(24,9)--基准单位转换率
)
Insert Into #ItemUOM(Item,FromUOM,ToUOM) Select Item,UOM,@ToUOM From #DemoData Group By Item,UOM--用with生成组内单位转换率临时表
If OBJECT_ID('tempdb..#UOMRatio') IS NOT NULL
DROP TABLE #UOMRatio
;
With UOMTree (Class,FromUOM,ToUOM,Ratio) AS
(
Select Class,ID,BUOM,Ratio From Base_UOM Where ID=BUOM --ID=BUOM表示基准单位
union all
Select A.Class,A.ID,B.ToUOM,CONVERT(Decimal(24,9),A.Ratio*B.Ratio) From Base_UOM as A
Inner Join UOMTree as B on A.BUOM=B.FromUOM Where ID!=BUOM --ID=BUOM表示非基准单位
)
Select A.Class,A.FromUOM,FromU.Name as '从单位',A.ToUOM,ToU.Name as '到单位',A.Ratio
Into #UOMRatio
From UOMTree as A
Inner Join Base_UOM FromU on A.FromUOM=FromU.ID
Inner Join Base_UOM ToU on A.ToUOM=ToU.ID
Order By Class,FromUOM--更新#ItemUOM 信息
Update A Set
A.FromBUOM
=B.ToUOM,
A.FromRatio
=B.Ratio,
A.ToBUOM
=C.ToUOM,
A.ToRatio
=C.Ratio
From #ItemUOM as A
Inner Join #UOMRatio as B on A.FromUOM=B.FromUOM
Inner Join #UOMRatio as C on A.ToUOM=C.FromUOM--获取单位组外单位转换率
Update #ItemUOM Set BRatio=1 Where FromBUOM=ToBUOMUpdate A Set A.BRatio=B.Ratio
From #ItemUOM as A
Inner Join Base_UOMRatio as B on A.FromBUOM=B.FromUOM and A.ToBUOM=B.ToUOMUpdate A Set A.BRatio=1/B.Ratio
From #ItemUOM as A
Inner Join Base_UOMRatio as B on A.FromBUOM=B.ToUOM and A.ToBUOM=B.FromUOM
Where ISNULL(A.BRatio,0)=0--更新单位转换率
Update #ItemUOM Set Ratio=(FromRatio/ToRatio)*BRatioUpdate A Set A.转换后=A.转换前*B.Ratio From #DemoData as A
Inner Join #ItemUOM as B on A.UOM=B.FromUOMSelect * from #DemoData