曾解决的问题现出现新问题,请marco08和mengmou及各位好手再帮看看
http://community.csdn.net/Expert/topic/5404/5404149.xml?temp=.3727991
得到mengmou和marco08的帮助本已解决,但现在出新情况,
就是MaInfo表会出现两个相同的记录时要把它们的值累加(如可口可乐),一旦出现这种情况目前的计算已不准确,小弟材疏,请大家再指点
--创建测试环境,假设下列表中的数据都已经按照公司、产品汇总,即公司、产品是主键。
create table Info(Code int,IncDes varchar(10))
create table MaInfo(Code int,Barcode varchar(10),MaterialsCn varchar(10),number int)
create table SaleDetail(Code int,Barcode varchar(10),MaterialsCn varchar(10),sellnum1 int)
create table SaleOrder(Code int,Barcode varchar(10),MaterialsCn varchar(10),sellnum2 int)
--插入测试数据
insert Info(Code,IncDes)
select '1009','天染公司' union all
select '1005','海丰公司' union all
select '1023','采诗公司'
insert MaInfo(Code,Barcode,MaterialsCn,number)
select '1009','1111111','可口可乐','10' union all
select '1009','1111111','可口可乐','10' union all
select '1009','1111112','芬达可乐','12' union all
select '1009','1111113','花生果','15' union all
select '1005','1111112','芬达可乐','20' union all
select '1005','1111114','出前一丁','30' union all
select '1023','1111112','芬达可乐','22' union all
select '1005','1111113','花生果','40'
insert SaleDetail(Code,Barcode,MaterialsCn,sellnum1)
select '1009','1111111','可口可乐','2' union all
select '1005','1111114','出前一丁','3' union all
select '1023','1111112','芬达可乐','1'
insert SaleOrder(Code,Barcode,MaterialsCn,sellnum2)
select '1009','1111111','可口可乐','2' union all
select '1023','1111112','芬达可乐','1'
--求解过程
declare @ztdm varchar(20)
set @ztdm = '''1005'',''1009'''
exec('
declare @sql varchar(8000)
select @sql = ''select barcode,MaterialsCn ''
select @sql = @sql + '',sum(case when IncDes = '''''' + IncDes
+ '''''' then sellnum else 0 end) as '' + IncDes + ''销量''
+ '',sum(case when IncDes = '''''' + IncDes
+ '''''' then number else 0 end) as '' + IncDes + ''库存''
from info where convert(varchar(20),code) in ('+@ztdm+')
select @sql = @sql + '',sum(sellnum) as 总销量,sum(number) as 总库存
from (
select _m.code,_i.IncDes,_m.barcode,_m.MaterialsCn
,min(number) as number,isnull(sum(num),0) as sellnum
from MaInfo _m
full join(
select Code,Barcode,MaterialsCn,sellnum1 as num
from SaleDetail
union all
select Code,Barcode,MaterialsCn,sellnum2
from SaleOrder
) _s on _s.code = _m.code and _s.barcode = _m.barcode
join info _i on _i.code = _m.code
group by _m.code,_m.barcode,_m.MaterialsCn,_i.IncDes) _x
group by barcode,MaterialsCn order by barcode''
exec(@sql)
')
--删除测试环境
drop table Info,MaInfo,SaleDetail,SaleOrder
/*--测试结果
barcode MaterialsCn 天染公司销量 天染公司库存 海丰公司销量 海丰公司库存 总销量 总库存
1111111 可口可乐 4 10 0 0 4 10
1111112 芬达可乐 0 12 0 20 2 54
1111113 花生果 0 15 0 40 0 55
1111114 出前一丁 0 0 3 30 3 30
*/
如上结果是错的,正确的结果如下
barcode MaterialsCn 天染公司销量 天染公司库存 海丰公司销量 海丰公司库存 总销量 总库存
1111111 可口可乐 4 20 0 0 4 20
1111112 芬达可乐 0 12 0 20 2 54
1111113 花生果 0 15 0 40 0 55
1111114 出前一丁 0 0 3 30 3 30
结果在此排得不整齐,请COPY到记事本看,谢谢
相关推荐
【Dv3Admin】菜单管理集成阿里巴巴自定义矢量图标库
本文介绍了如何在Vue项目中集成阿里巴巴iconfont自定义图标库,实现图标选择器组件。主要内容包括:从iconfont.cn下载图标资源并配置路径;通过读取iconfont.json文件自动获取图标列表;开发图标选择器组件支持可视化选择;实现图标与表单数据的双向绑定。文章强调了统一类名命名和资源路径的重要性,提供了图标维护建议,指出该方案在后台管理系统等场景具有通用性和可扩展性,能够显著优化图标使用体验并降低维护成本。
【高速互连技术】基于线性均衡的PCIe链路扩展方案:重驱动器在高损耗通道中的信号完整性优化
内容概要:本文介绍了如何利用线性均衡技术扩展PCI Express(PCIe)链路的传输距离,重点探讨了重驱动器(Re-Driver)在补偿PCB和电缆信道损耗中的作用。文章回顾了Re-Driver的发展历程,分析其性能特点,解释其在不同信道环境下的应用条件,并强调线性操作对保持信号完整性及满足PCIe规范的重要性。通过眼图分析、频率响应和Tx预设波形等手段,展示了R
谐波去噪基于随机奇异值分解和软阈值的大型数据集中的强大高效谐波去噪研究(Matlab代码实现)
内容概要:本文研究了一种基于随机奇异值分解(Randomized SVD)和软阈值(Soft Thresholding)的高效谐波去噪方法,旨在解决大型数据集中谐波干扰的抑制问题。该方法通过引入随机化技术加速传统奇异值分解过程,在保障信号主要特征完整性的同时,显著提升了高维数据处理的计算效率与实时性,适用于电力系统、通信等领域的复杂信号处理场景。文中系统阐述了算法的数学理论基础、实现步骤及在Matlab环境下的具体代码实现,并通过仿真实验验证了其在不同噪声水平下对谐波成分的有效识别与去除能力,展现出优异的鲁棒性与工程实用价值。; 适合人群:具备一定信号处理理论基础和Matlab编程能力,从事电力系统分析、通信工程、自动化控制或相关领域研究的研发人员及硕士、博士研究生。; 使用场景及目标:①应用于大规模实测信号中谐波成分的快速提取与抑制;②用于提升电能质量监测、设备故障诊断、精密仪器测量等应用中的信号信噪比;③为高维时序数据的高效去噪提供可复现、易部署的算法模板与技术参考。; 阅读建议:建议读者结合提供的Matlab代码逐模块理解算法实现细节,重点掌握随机SVD与软阈值去噪的协同机制,并尝试在实际采集数据上进行参数调优与性能测试,以深入理解其适用边界与优化潜力。
binutils-2.19.92.tar.bz2
binutils-2.19.92.tar.bz2
Agent Skills 实战速查包(Claude Code 技能体系/格式全表/加载位置/触发传参/上下文成本/打包分发/安全治理/排错)
Agent Skills 是 2025 年底以来 AI 编码工具领域事实上的新开放标准(Anthropic 开源、agentskills.io 承载规范),Claude Code、claude.ai、Claude API 及各兼容 agent 都在用;但规范页、Claude Code 文档、示例仓库三处全英文且互相引用,行为细节(比如哪些 frontmatter 字段出了 Claude Code 上传就会失败)散落各段。本包按「看懂格式 → 放对位置 → 控制触发 → 算清 token → 打包分发 → 审安全 → 排错」一条线整理:技能三层渐进加载与 CLAUDE.md/命令/MCP 的边界、7 种加载位置与同名优先级、SKILL.md 开放标准 6 字段 + Claude Code 扩展 17 字段逐条约束与跨产品红线、$ARGUMENTS/$1/命名参数两种传参、描述列表 1% 压缩预算与 skillOverrides 四状态、context:fork 子代理与动态注入的完整行为矩阵(位置规则/失败语义/权限检查)、官方写法最佳实践与对照基线的 eval 闭环、Git/插件市场/企业托管三条分发路与 marketplace.json 结构、自放行与第三方技能进场审查、YAML 解析失败静默降级与非零退出中止整个技能调用等 16 类症状反查。附 SKILL.template、marketplace.template、settings.template 三份可直接改占位的骨架与一个零依赖校验脚本(合法 exit 0、错误 exit 1 逐条打印)。本包不含任何程序本体,只整理规则与配置骨架;示例一律 YOUR_*/your-* 占位。


疑难问题
