dxdbgrid中如何把重复记录合并

oy145 2005-01-19 03:00:56
本人用dxdbgrid做进货单录入,有字段 “编号”“名称”“数量”“单价”
其中“编号”字段是唯一的,输入单据时遇到有“编号”重复的商品怎样把它的“数量”相加后合成一条记录,有点像超市中扫相同的商品自动在数量上相加。
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kshape 2005-01-19
  • 打赏
  • 举报
回复
输入单据时遇到有“编号”重复的商品怎样把它的“数量”相加后合成一条记录
-----------------------------------------------------------------------
你是指输入的时候自动处理吗?
还是用传统的sql语句吧
比如说你现在要输入的编号为10,数量为50,.......
定义一个新变量:
var
newcount: integer;

--------------------------
newcount := 0;

with ADOQuery1 do
begin
sql.clear;
sql.add('select * from table where no=10');
open;
if recordcount <> 0 then//已经存在
begin
newcount = 50+Fildbyname('count').asinteger;
//update 把原来的已经存在的数量改成现在的新数量
end
else//不存在
begin
//insert,作为新的一项插入到数据库
end;
end;
dh9450 2005-01-19
  • 打赏
  • 举报
回复
if (select count(*) from 表 where 编号='输入编号')=0
insert into 表(编号,名称,数量,单价)values(值,值,值,值)
else
update 表 set 数量=数量+值 where 编号='输入编号'
Kshape 2005-01-19
  • 打赏
  • 举报
回复
在sql语句中
消除重复项用DISTINCT
合并项用SUM(字段);

两者结合就可以了
eedragon 2005-01-19
  • 打赏
  • 举报
回复
你可以这样做:输入一个编号,自动去数据库取原来的数量,然后跟当前的数量相加作为新的数量,保存
用sql很容易实现的
赖皮鹏 2005-01-19
  • 打赏
  • 举报
回复
用SQL语句处理。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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