社区
C++ Builder
帖子详情
我的问题_2
hotyei
2001-06-11 11:41:00
加精
请问怎样进行记录的横向计算?
比如记录如下:
存货名称 仓库1 仓库2 仓库3 仓库4 总计
大米 10 20 30 40 100
我要求总计是计算字段,而“仓库1、2、3、4”这些字段不是固定的!
因为我可能会添加新的字段如“仓库5”“仓库6”。
应如何实现!又或者用其它的数据库结构来保存?必给分!!!
...全文
110
13
打赏
收藏
我的问题_2
请问怎样进行记录的横向计算? 比如记录如下: 存货名称 仓库1 仓库2 仓库3 仓库4 总计 大米 10 20 30 40 100 我要求总计是计算字段,而“仓库1、2、3、4”这些字段不是固定的! 因为我可能会添加新的字段如“仓库5”“仓库6”。 应如何实现!又或者用其它的数据库结构来保存?必给分!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hotyei
2001-06-14
打赏
举报
回复
谢谢大家!
hotyei
2001-06-13
打赏
举报
回复
谢谢大家!我会认真学习范式的了。
孩皮妞野
2001-06-12
打赏
举报
回复
TR@SOE的意见, 你要好好看一看。
weenyboy
2001-06-12
打赏
举报
回复
很简单的操作,使用动态sql语句
AnsiString S=DataSource->DataSet->Fields[1]->FieldName;
for(int i=2;i<DBGrid1->DataSource->DataSet->FieldCount-1;i++)
{
S+="+";
S+=DBGrid1->DataSource->DataSet->Fields[i]->FieldName;
}
Query1->SQL->Text = "Update theTable Set Total="+S;
Query1->ExecSQL
TR@SOE
2001-06-12
打赏
举报
回复
你对数据库的NORMALIZATION(范式)还没有掌握吧?在一般的讲述数据库基础知识的书中都会讲到,关系数据库中的每个表最少要求达到第三范式。具体的要求我也不是记得很清楚,反正如果针对你上述的情况,你可以这样来修改你的表结构:
货品信息表
货品编号 支数 成分 款号 色号 颜色
0001 2/28 50%Wool 50%W-2/28 1000 雪雪白
0002 3/37 100%Wool ABCDE 5000 墨墨黑
货存货表
库存流水号 货仓号 货品号 数量
1 1 0001 100
2 2 0001 5000
3 1 0002 200
4 2 0002 1500
你可以将货仓号+货品号作为第二个表的主键,以确保对于每个仓库,某个产品的数量只能有一个。或者如果做不到的话,将库存流水号作为主键。无论在何种情况下,第二个表中的货品号都将作为外键和第一个表的主键货品号相关联。
这样不是很好吗?
hotyei
2001-06-12
打赏
举报
回复
但如果我的存货不是大米,而是毛料,因为一种毛料有多个相关的数据,如果按程序猪的做法,会有很多多余的数量,而且几种毛料之间也有一定的关系,如:
存货编码 支数 成份 款号 色号 颜色 缸号 数量............
0001 2/28 50%Wool 50%W-2/28 1000 纯白 3452 100
0001 2/28 50%Wool 50%W-2/28 1000 纯白 3453 100
0001 2/28 50%Wool 50%W-2/28 1000 纯白 3454 100
0001 2/28 50%Wool 50%W-2/28 1000 纯白 3455 100
看,如果有十个仓库的话,有多少多余的数量啊,一间厂一般都会有上万种毛料啊!而且只要缸号不同,其它参数相同,也会是作为同一种毛料的。
ciml
2001-06-11
打赏
举报
回复
表结构很不合理,重新设计表结构!
TR@SOE
2001-06-11
打赏
举报
回复
你这个表的结构是不好的,如果你决定增加或/减少一个仓库,你会发现你陷入了泥潭。
如果一定要那样做,那么可以这样来:
#define TOTAL_STOCKS 4 //一共有4个仓库
const AnsiString StockName[]={"Stock1","Stock2","Stock3","Stock4"}; //存储各仓库在表中的字段名
...
int sum=0;
for(int i=1;i<=TOTAL_STOCKS;i++)
sum+=Table1->FieldByName(StockName[i-1])->AsInteger;
大概是可以完成。修改时,只要修改TOTAL_STOCKS和StockName即可。
推荐的方法中,表结构如下:
Item Stock Qty
大米 仓库1 100
大米 仓库2 1000
.....
这样要求出大米的总库存,可以简单地用SQL来进行:
select item, sum(qty) from table1 where item='大米'
wjzhuang
2001-06-11
打赏
举报
回复
不固定的数据表???
在你的程序中应该有能动态添加修改数据表结构的功能.
所以你可以在这里设置一些变量或者什么的来读取你这个数据表的长度(有几个字段).
然后在需要的地方就可以用得上.
不好意思,我不太明白你要实现什么功能...
wjzhuang
2001-06-11
打赏
举报
回复
帮主的回答中建议你把仓库当成值,而不是字段.这样可以避免修改仓库数目的麻烦.如下
表结构如下:
Item Stock Qty
大米 仓库1 100
大米 仓库2 1000
.....
我个人认为这是更合理的修改方式
数据量大查询速度和你的数据库关系比较大.有超过10000条的纪录就不要使用桌面数据库了(比如:access,),改用比较大型的数据库
另:在查询中使用sql语句更方便,灵活.至少不用自己写代码遍历数据表.
TR@SOE
2001-06-11
打赏
举报
回复
总计字段在你的数据结构中是冗余字段,因为已经有了各个分字段。如果必须要有,可以将它独立出来做一个表格。
用SQL是可以不用循环的。你的问题关键是表的结构不合理。
hotyei
2001-06-11
打赏
举报
回复
大家的方法都是通过循环字段来计算的,但如果记录的数量多时(比如1万条),真怕速度会很慢。
TO:Ciml
你认为怎样设置表的结构呢?总计字段是一定要的了。
gqxs
2001-06-11
打赏
举报
回复
adoquery->Sql->Add("select item from table1");
adoquery->Sql->Open();
while(!adoquery->Eof)
{
sum += adoquery->FieldByName("item")->AsInteger;
adoquery->next;
}
node-v12.16.3-x86.msi
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
云计算基础课件—架构dr.pptx
云计算基础课件—架构dr.pptx
067ssm-jsp-mysql艺诚美业管理系统.zip(可运行源码+数据库文件+文档)
L文主要是对艺诚美业管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对艺诚美业管理系统进行了一些具体测试。 本文以JSP为开发技术,实现了一个艺诚美业管理系统。艺诚美业管理系统的主要使用者分为管理员;个人中心、会员管理、员工管理、员工打卡管理、技师预约管理、发型美容师管理、技师类型管理、套餐信息管理、套餐类型管理、套餐购买管理、会员充值管理、系统管理,员工;个人中心、员工打卡管理、技师预约管理,会员;个人中心、技师预约管理、套餐购买管理、会员充值管理,前台首页;首页、发型美容师、套餐信息、我的、跳转到后台等功能。通过这些功能模块的设计,基本上实现了整个艺诚美业管理系统的过程。 具体在系统设计上,采用了B/S的结构,同时,也使用JSP技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的艺诚美业管理系统。 关键词 :艺诚美业管理系统;JSP技术;Mysql数据库;B/S结构
【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar
【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:242】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 有管理员,外卖员,餐厅,用户共四个角色。管理员功能有个人中心,外卖员管理,餐厅管理,用户管理,菜品分类管理,菜品信息管理,外卖订单管理,订单配送管理,订单评价管理,在线留言管理,系统管理等。外卖员,餐厅,用户都可以在微信小程序上面进行注册和登录操作。餐厅角色可以在微信小程序上面进行菜品的添加,修改,删除,查询操作,可以对用户的订单进行审核操作,查看订单配送状态和评价,可以查看投诉反馈和在线留言等。外卖员角色可以在微信小程序上面进行订单的抢单操作,查看订单配送和评价信息等。 用户角色可以在微信小程序上面进行菜品的查看和查询,对自己下的订单进行支付操作,查看订单配送和对订单评价,收藏菜品等操作。
oplog4j是java项目生成操作日志的工具,兼容spring(高分项目).zip
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章