见图片要求!
解决方案 »
- update 将某字段的前两位更改
- 一般的信息管理软件,录入信息时,用半角好还是全角好呢?
- 第 2 行: 'unsigned' 附近有语法错误。 帮忙解决!急,在线等
- 求救呀 在做报表中,月份的起始点要以上个月的27日开始算起到本月的26日为止,不能以自然月为准;
- 怎么复制两个数据库之间的表和字段,其中一个数据库有密码??????
- 请大家帮我写一个有难度的SQL,谢谢!
- SQL 2K 中某表去掉重复记录到一个新表怎么操作!
- 问个修改数据库结构的问题
- 这个问题出现在程序子线程提交3000个insert,然后10个update以及3个delete的事务提交
- sql server2014安装的时候出现计数器问题,perflib 2.0 计数器removal失败 命令行C:\windows\system32\unlod
- SQL,case 行转列。。。
- SQL语句
FROM gjtserver GROUP BY excelserverrcid, 司机
变成SQL语句, 就是根据司机和班次分组額.我之前语句没有注意浮点数转化, 转化下,应该就可以了select convert(decimal(4,3),(1/convert(decimal(4,3), count(司机)))) as 司机频次
from 司机出车表 group by excelserverrcid, 司机
非常感谢您 的回答,因我不太懂SQL,才开始学习。您 的SQL语句,可以把司机频次计算出来,但不能写入到司机频次中,请问如何写入到司机频次中?有update 语句吗?我这样写 ,不正确:
update [gkapp].[dbo].[D01卡车运输班统计表_明细] set 司机频次=(select convert(decimal(4,3),(1/convert(decimal(4,3), count(司机)))) as 司机频次 from [gkapp].[dbo].[D01卡车运输班统计表_明细] group by excelserverrcid, 司机)请再指导,感谢。
原来没有考虑到此字段,目前已经有很多条记录了,等着用此字段的数据,只好用sql来实现。
set 司机频次= B.司机频次
from [D01卡车运输班统计表_明细] AS A
inner join
(select excelserverrcid, 司机,
convert(decimal(4,3),(1/convert(decimal(4,3), count(司机)))) as 司机频次
from [D01卡车运输班统计表_明细] group by excelserverrcid, 司机) AS B
on A.excelserverrcid = B.excelserverrcid AND A.司机 = B.司机
意思就是:
因为你需要统计每个班次的司机情况, 所以先根据司机,班次分组,可以得到每个班次里面, 相同名字的司机, 有多少个。
查询结果形成一个表(inner join 后面部分到 AS B 可以看作是一个数据视图(你也可以当是一个表了<但非物理存在的表>)) ,
因为你是对司机,班次分组, 那查询形成的表,跟原表【D01卡车运输班统计表_明细】的关系, 就需要班次和司机名字均相等了,所以有 on A.excelserverrcid = B.excelserverrcid AND A.司机 = B.司机总的更新, 其实你可以看成是
将B表的X字段, 更新到A表的Y字段
A表和B表的关系就是A表和B表的COL1,COL1字段分别相等,
即 on A.excelserverrcid = B.excelserverrcid AND A.司机 = B.司机至于 convert(decimal(4,3) ....... 这部分, 其实就是一个类型转化。
先将同名字同班次司机次数转成浮点型然后再计算, 然后再计算频次 ,
不先转化, 系统默认会保留整数, 这会导致小数被截取,而无法显示出正确结果
然后,最外围的 convert(decimal(4,3) ... 也是用小数表示的意思。
意思就是:
因为你需要统计每个班次的司机情况, 所以先根据司机,班次分组,可以得到每个班次里面, 相同名字的司机, 有多少个。
查询结果形成一个表(inner join 后面部分到 AS B 可以看作是一个数据视图(你也可以当是一个表了<但非物理存在的表>)) ,
因为你是对司机,班次分组, 那查询形成的表,跟原表【D01卡车运输班统计表_明细】的关系, 就需要班次和司机名字均相等了,所以有 on A.excelserverrcid = B.excelserverrcid AND A.司机 = B.司机总的更新, 其实你可以看成是
将B表的X字段, 更新到A表的Y字段
A表和B表的关系就是A表和B表的COL1,COL1字段分别相等,
即 on A.excelserverrcid = B.excelserverrcid AND A.司机 = B.司机至于 convert(decimal(4,3) ....... 这部分, 其实就是一个类型转化。
先将同名字同班次司机次数转成浮点型然后再计算, 然后再计算频次 ,
不先转化, 系统默认会保留整数, 这会导致小数被截取,而无法显示出正确结果
然后,最外围的 convert(decimal(4,3) ... 也是用小数表示的意思。再次表示感谢,有问题再来向您请教!!