HI《请高手帮忙看一下,由一个表得到另一个表的问题!有一定难度。谢谢了!

Angelnet 2008-01-16 09:46:02
表一:
日期 线别 订单号 送检批数 送检数量 缺陷明细 缺陷等级 工程原因分析 改善对策
2008-1-1 A CH-001 1 100 AAA 重 A123 C001
2008-1-1 A CH-001 2 50 AAA 重 A123 C001
2008-1-1 A CH-001 4 50 无
2008-1-1 A CH-001 3 250 B 轻 B215 D555
2008-1-1 B CH-001 1 120 重 重 A123 C001
2008-1-2 A CH-002 1 130 重 重 B001 F001


表二:
日期 线别 订单号 送检批数 送检数量 批退批数 批退率 缺陷明细 缺陷明细 工程原因分析 改善对策
2008-1-1 A CH-001 4 450 3 75.00% AAA 重 A123 C001
2008-1-1 A CH-001 4 450 3 75.00% B 轻 B215 D555
2008-1-2 A CH-002 1 130 1 100.00% 重 重 B001 F001
2008-1-1 B CH-001 1 120 1 100.00% 重 重 A123 C001
通过表一得到表二,计算方式为:日期、线别、订单号、缺陷明细,缺陷等级,工程原因分析,改善对策一样的,合并成一行,送检
批数为订单号对应的送检批数最大那一个,送检数量为对应订单号累加(和日期等无关),批退批数为缺陷等级为无的累加,缺陷等级为无的不显示在表二中,谢谢,也不知说清楚没有!再次感谢!
...全文
120 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2008-01-16
  • 打赏
  • 举报
回复
--加个改善对策=无,如果为空改为0
select 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策,送检批数=max(送检批数),送检数量=sum(送检数量),批退批数=(select isnull(count(*),0) from tb where 改善对策 = '无' and 日期=t.日期 and 线别 = t.线别 and 订单号 = t.订单号 and 缺陷明细 = t.缺陷等级 and 工程原因分析 = t.工程原因分析 and 改善对策 = t.改善对策) from tb t
group by 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策
dawugui 2008-01-16
  • 打赏
  • 举报
回复
--加个改善对策=无
select 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策,送检批数=max(送检批数),送检数量=sum(送检数量),批退批数=(select sum(批退批数) from tb where 改善对策 = '无' and 日期=t.日期 and 线别 = t.线别 and 订单号 = t.订单号 and 缺陷明细 = t.缺陷等级 and 工程原因分析 = t.工程原因分析 and 改善对策 = t.改善对策) from tb t
group by 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策
wuxinyuzhu 2008-01-16
  • 打赏
  • 举报
回复
没有看懂
dawugui 2008-01-16
  • 打赏
  • 举报
回复
select 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策,送检批数=max(送检批数),送检数量=sum(送检数量),批退批数=(select sum(批退批数) from tb where 日期=t.日期 and 线别 = t.线别 and 订单号 = t.订单号 and 缺陷明细 = t.缺陷等级 and 工程原因分析 = t.工程原因分析 and 改善对策 = t.改善对策) from tb t
group by 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策
中国风 2008-01-16
  • 打赏
  • 举报
回复
select
日期,线别,订单号,
送检批数=max(送检数量),
送检数量=(select sum(送检数量) from t where 订单号=a.订单号),
批退批数=SUM(送检数量),
缺陷明细,缺陷等级,工程原因分析,改善对策
from
T a
where
缺陷等级<>'无'
group by 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策
中国风 2008-01-16
  • 打赏
  • 举报
回复
select,
日期,线别,订单号,
送检批数=max(送检数量),
送检数量=(select sum(送检数量) from t where 订单号=a.订单号),
批退批数=SUM(送检数量),
缺陷明细,缺陷等级,工程原因分析,改善对策
from
T a
where
缺陷等级<>'无'
group by 日期,线别,订单号,缺陷明细,缺陷等级,工程原因分析,改善对策

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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