DELPHI SQL的資料相加問題

時間 2022-07-09 23:05:13

1樓:匿名使用者

我寫的那個觸發器問題太多所以刪了(汗。。)

其實樓下兩位兄弟說的很對,你把表合一張表

id 原始值 修改值 總積分 狀態 時間

原始值就不說了

修改值就是你每次操作時要扣除或增加的積分

總積分就是修改值和原始值的+ -值

時間就是你操作這條資料的系統時間

狀態(1或0):確定操作是增加積分還是扣除積分

當要增加一個會員的積分時,操作順序如下

修改值=增加或扣除的積分

原始值=原來的總積分

總積分=原始值加或減修改值

狀態=1

時間=系統時間

而這表也可以做到日誌表的作用

如果說的不對,請直接忽略

一下是我的測試資料:

--測試表

create table jfinfo

(id int,

ysz int, --原始值

xgz int, --修改值

zjf int, --總積分

zt bit, --狀態

rq datetime --操作時間)go

--觸發器

alter trigger update_trigger

on jfinfo

for update

as declare @zt bit

if update(xgz)

begin

set @zt=(select zt from inserted)

--如果有更新操作

if (((select count(*) from deleted)>0) and ((select count(*) from inserted)>0))

begin

if (@zt=1)--如果是增加

begin

update jfinfo set ysz=(select zjf from deleted),

zjf=(select zjf from deleted)+(select xgz from inserted),

rq=getdate()

endelse

begin

update jfinfo set ysz=(select zjf from deleted),

zjf=(select zjf from deleted)-(select xgz from inserted),

rq=getdate()

endend

endgo

--測試資料

insert into jfinfo values(1,10,0,10,1,getdate())

--測試結果

update jfinfo set xgz=1,zt=1 where id=1

select * from jfinfo

--親測有效,希望能幫到你

2樓:匿名使用者

其實沒有必要用兩張表,你要查詢的話直接

select sum(每次積分) from 表名 where 會員卡號=會員卡號

不就行了.

3樓:歸浦秋梵

這個沒必要用2張表,就是存明細資訊就可以了

具體要用到得時候再用聚合函式,比如

select sum(每次積分) from 表名 where 會員卡號=會員卡號

4樓:匿名使用者

你放總積分的那個表裡面的積分數值總是最後一次消費後的積分,所以每次消費只要加上當次消費的積分,再存回去就好了

update 表名 set [總積分]=[總積分]+當前消費積分 where [會員卡號]=當前會員卡號

5樓:九州樹

每次輸入時,如果提交成功,就改變兩個表,第一次更新當前表,第二次更新總積分表,即一次執行兩個簡單的函式而已,100分,太強大了。

vb程式設計如何實現資料中指定行的資料相加

dim j as string dim p as string dim h as long adodc1.recordsource select from tb where 主鍵 text1.text adodc1.refresh j adodc1.recordset.fields 數字 adodc...

兩張EXCEL表中的相同姓名下的資料相加到第3張表中怎麼做

滕樹萍 假如 sheet1表的a1是標題 姓名 a2 a4是姓名sheet2表的a1是標題 姓名 a2 a5是姓名在sheet3工作表中的a2單元格輸入公式 if and countif a 1 a1,sheet1 a 1 a 4 index sheet2 a 1 a 5,match 0,count...

ORACLE資料庫多行資料合併為1行的問題,急用

你看看是不是這樣的,你資料排版太混亂了 select csrq,qyph,pczl,wm concat jyxmmc wm concat jyz xydj,je from 表名 group by csrq,qyph,pczl,xydj,je 補充 oracle跟sqlserver不一樣,如果儲存過程...