关于一条SQL语句的修改,紧急求救!在线等

vgerz 2008-11-04 02:55:09
各位大哥大姐,在下先有礼了!以下是这条SQL
select v_bom_parent_rpt.InvCode as 母件编码,
Inventory.cInvName as 母件名称,
Inventory.cInvStd as 母件型号,
PurSettleVouchs.cInvCode as 子件编码,
v1.cInvName as 子件名称,v1.cInvStd as 子件型号,
v1.cVenCode as 供应商代码,
PurSettleVouch.dsvdate as 结算时间,
PurSettleVouchs.iSVCost/0.83 as 单价,
v_bom_opcomponent_rpt.BaseQtyN as 基本用量,
PurSettleVouchs.iSVCost/0.83*v_bom_opcomponent_rpt.BaseQtyN as 小计
from Inventory RIGHT JOIN (v_bom_parent_rpt LEFT JOIN (v_bom_opcomponent_rpt LEFT JOIN (PurSettleVouch RIGHT JOIN (PurSettleVouchs LEFT JOIN Inventory v1 on PurSettleVouchs.cInvCode=v1.cInvCode) on PurSettleVouch.PSVID=PurSettleVouchs.PSVID) on v_bom_opcomponent_rpt.InvCode=PurSettleVouchs.cInvCode) on v_bom_parent_rpt.BomId=v_bom_opcomponent_rpt.BomId) on Inventory.cInvCode=v_bom_parent_rpt.InvCode
order by v_bom_parent_rpt.InvCode
这段代码没有错,只是我想实现取“子件编码”相同,并且“结算时间”最大时对应的所有行,请各位大牛帮帮我,小弟十分感谢。
我是新人,所以没分,希望大家能帮帮忙
...全文
237 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vgerz 2008-11-08
  • 打赏
  • 举报
回复
谢谢大家来了,这两天有事没上来,不好意思。我这就结贴。。
等不到来世 2008-11-05
  • 打赏
  • 举报
回复
用临时表:
select v_bom_parent_rpt.InvCode as 母件编码, 
Inventory.cInvName as 母件名称,
Inventory.cInvStd as 母件型号,
PurSettleVouchs.cInvCode as 子件编码,
v1.cInvName as 子件名称,v1.cInvStd as 子件型号,
v1.cVenCode as 供应商代码,
PurSettleVouch.dsvdate as 结算时间,
PurSettleVouchs.iSVCost/0.83 as 单价,
v_bom_opcomponent_rpt.BaseQtyN as 基本用量,
PurSettleVouchs.iSVCost/0.83*v_bom_opcomponent_rpt.BaseQtyN as 小计
into #temp
from Inventory RIGHT JOIN (v_bom_parent_rpt LEFT JOIN (v_bom_opcomponent_rpt LEFT JOIN (PurSettleVouch RIGHT JOIN (PurSettleVouchs LEFT JOIN Inventory v1 on PurSettleVouchs.cInvCode=v1.cInvCode) on PurSettleVouch.PSVID=PurSettleVouchs.PSVID) on v_bom_opcomponent_rpt.InvCode=PurSettleVouchs.cInvCode) on v_bom_parent_rpt.BomId=v_bom_opcomponent_rpt.BomId) on Inventory.cInvCode=v_bom_parent_rpt.InvCode

select * from #temp a
where not exists(select 1 from #temp where 母件编码=a.母件编码 and 子件编码=a.子件编码 and 供应商代码=a.供应商代码 and 结算时间>a.结算时间)
zjcxc 2008-11-05
  • 打赏
  • 举报
回复
join 的表太多, 不容易看清楚表之间的关系, 这样好了

select v_bom_parent_rpt.InvCode as 母件编码, 
Inventory.cInvName as 母件名称,
Inventory.cInvStd as 母件型号,
PurSettleVouchs.cInvCode as 子件编码,
v1.cInvName as 子件名称,v1.cInvStd as 子件型号,
v1.cVenCode as 供应商代码,
PurSettleVouch.dsvdate as 结算时间,
PurSettleVouchs.iSVCost/0.83 as 单价,
v_bom_opcomponent_rpt.BaseQtyN as 基本用量,
PurSettleVouchs.iSVCost/0.83*v_bom_opcomponent_rpt.BaseQtyN as 小计
from Inventory RIGHT JOIN (v_bom_parent_rpt LEFT JOIN (v_bom_opcomponent_rpt LEFT JOIN (PurSettleVouch RIGHT JOIN (PurSettleVouchs LEFT JOIN Inventory v1 on PurSettleVouchs.cInvCode=v1.cInvCode) on PurSettleVouch.PSVID=PurSettleVouchs.PSVID) on v_bom_opcomponent_rpt.InvCode=PurSettleVouchs.cInvCode) on v_bom_parent_rpt.BomId=v_bom_opcomponent_rpt.BomId) on Inventory.cInvCode=v_bom_parent_rpt.InvCode
WHERE NOT EXISTS( -- 过滤条件
SELECT * FROM(
select
PurSettleVouchs.cInvCode,
PurSettleVouch.dsvdate
from Inventory RIGHT JOIN (v_bom_parent_rpt LEFT JOIN (v_bom_opcomponent_rpt LEFT JOIN (PurSettleVouch RIGHT JOIN (PurSettleVouchs LEFT JOIN Inventory v1 on PurSettleVouchs.cInvCode=v1.cInvCode) on PurSettleVouch.PSVID=PurSettleVouchs.PSVID) on v_bom_opcomponent_rpt.InvCode=PurSettleVouchs.cInvCode) on v_bom_parent_rpt.BomId=v_bom_opcomponent_rpt.BomId) on Inventory.cInvCode=v_bom_parent_rpt.InvCode
) AA
WHERE AA.cInvCode = PurSettleVouchs.cInvCode
AND AA.dsvdate > PurSettleVouch.dsvdate)
order by v_bom_parent_rpt.InvCode
viva369 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vgerz 的回复:]
to:zjcxc
谢谢邹大牛,但是运行的时候提示
列名‘dsvdate’无效。
[/Quote]

牛!!!^_^
vgerz 2008-11-05
  • 打赏
  • 举报
回复
可能是我没表达清楚吧,我是想根据列出的这条查询结果来再次查询出子件编码相等时,结算时间最大时所对应的所有行。有劳各位了
vgerz 2008-11-05
  • 打赏
  • 举报
回复
to:zjcxc
谢谢邹大牛,但是运行的时候提示
列名‘dsvdate’无效。
ilovewalk 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 viva369 的回复:]
select aa.* from #t as aa
inner join
(select 子件编码,max(结算时间) 结算时间 from #t group by 子件编码) as bb
on aa.子件编码 = bb.子件编码 and aa.结算时间 = bb.结算时间
[/Quote]
R?
zjcxc 2008-11-05
  • 打赏
  • 举报
回复
select v_bom_parent_rpt.InvCode as 母件编码, 
Inventory.cInvName as 母件名称,
Inventory.cInvStd as 母件型号,
PurSettleVouchs.cInvCode as 子件编码,
v1.cInvName as 子件名称,v1.cInvStd as 子件型号,
v1.cVenCode as 供应商代码,
PurSettleVouch.dsvdate as 结算时间,
PurSettleVouchs.iSVCost/0.83 as 单价,
v_bom_opcomponent_rpt.BaseQtyN as 基本用量,
PurSettleVouchs.iSVCost/0.83*v_bom_opcomponent_rpt.BaseQtyN as 小计
from Inventory RIGHT JOIN (v_bom_parent_rpt LEFT JOIN (v_bom_opcomponent_rpt LEFT JOIN (PurSettleVouch RIGHT JOIN (PurSettleVouchs LEFT JOIN Inventory v1 on PurSettleVouchs.cInvCode=v1.cInvCode) on PurSettleVouch.PSVID=PurSettleVouchs.PSVID) on v_bom_opcomponent_rpt.InvCode=PurSettleVouchs.cInvCode) on v_bom_parent_rpt.BomId=v_bom_opcomponent_rpt.BomId) on Inventory.cInvCode=v_bom_parent_rpt.InvCode
WHERE NOT EXISTS( -- 过滤条件
SELECT * FROM PurSettleVouchs AA
WHERE AA.cInvCode = PurSettleVouchs.cInvCode
AND AA.dsvdate > PurSettleVouchs.dsvdate
AND AA.PSVID=PurSettleVouchs.PSVID)
order by v_bom_parent_rpt.InvCode
lihuanmei 2008-11-05
  • 打赏
  • 举报
回复
select v_bom_parent_rpt.InvCode as 母件编码, 
Inventory.cInvName as 母件名称,
Inventory.cInvStd as 母件型号,
PurSettleVouchs.cInvCode as 子件编码,
v1.cInvName as 子件名称,v1.cInvStd as 子件型号,
v1.cVenCode as 供应商代码,
PurSettleVouch.dsvdate as 结算时间,
PurSettleVouchs.iSVCost/0.83 as 单价,
v_bom_opcomponent_rpt.BaseQtyN as 基本用量,
PurSettleVouchs.iSVCost/0.83*v_bom_opcomponent_rpt.BaseQtyN as 小计 into #
from Inventory RIGHT JOIN (v_bom_parent_rpt LEFT JOIN (v_bom_opcomponent_rpt LEFT JOIN (PurSettleVouch RIGHT JOIN (PurSettleVouchs LEFT JOIN Inventory v1 on PurSettleVouchs.cInvCode=v1.cInvCode) on PurSettleVouch.PSVID=PurSettleVouchs.PSVID) on v_bom_opcomponent_rpt.InvCode=PurSettleVouchs.cInvCode) on v_bom_parent_rpt.BomId=v_bom_opcomponent_rpt.BomId) on Inventory.cInvCode=v_bom_parent_rpt.InvCode
order by v_bom_parent_rpt.InvCode
select max(结算时间),子件编码 from # a where #.子件编码=a.子件编码
viva369 2008-11-05
  • 打赏
  • 举报
回复
select aa.* from #t as aa
inner join
(select 子件编码,max(结算时间) 结算时间 from #t group by 子件编码) as bb
on aa.子件编码 = bb.子件编码 and aa.结算时间 = bb.结算时间
vgerz 2008-11-05
  • 打赏
  • 举报
回复
用临时表或者存储过程都可以的,再次感谢
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧