连接语句中列的一部分的总和 [英] Sum of part of a column in a join statement

查看:35
本文介绍了连接语句中列的一部分的总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

钢铁订单

OrderNumber
-----------
0000843989    
0000843124    
0000881234    
0000123456    
-----------

FinalizedPrintedStickers

SN                  |  PanelBuildTime
-------------------------------------
0000843989-8R8-4-0  |  360
0000843989-8R8-4-1  |  200
0000843989-8R8-4-2  |  900    
0000843989-8R8-4-3  |  360
0000843989-8R8-4-4  |  460
0000843989-8S-1-0   |  220    
0000843989-8-2-0    |  360
etc..
-------------------------------------

所需的结果是:

OrderNumber |  PanelBuildTime
-----------------------------
0000843989  |  2860    
etc..
-----------------------------

我尝试了什么?

Select OrderNumber, Sum(PanelBuildTime) from SteelOrders 
INNER JOIN FinalizedPrintedStickers 
ON 
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)

不幸的是,我不知道如何在 steelorder 表中的每个项目上添加 WHERE 子句

Unfortunately I have no idea how to add a WHERE clause on to this per item in the steelorder table

另外(因为我在我的 C# 代码中使用 oledb 从钢铁订单表中读取)我已经尝试了每次读取 OleDbDataReader 执行 Select Sum(PanelBuildtime)其中 ordernumber = reader["OrderNumber"],但速度非常慢

Also (Since I'm using oledb in my C# code to read from the steel order table) I've tried for every read of the OleDbDataReader Executing the Select Sum(PanelBuildtime) where ordernumber = reader["OrderNumber"], but that's extremely slow

推荐答案

可以按订单号分组,显示构建时间汇总

You can group by the order number to show the summary of the build times

Select OrderNumber, Sum(PanelBuildTime) from SteelOrders 
INNER JOIN FinalizedPrintedStickers 
ON 
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY SteelOrders.OrderNumber 

这篇关于连接语句中列的一部分的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆