QUESTION 1
我必须根据参数的值更新访问表的某些字段 . 如果这个参数是“真的”我需要更新 .
表idInvoice价格percentageTax1 tax1 percentageTax2 tax2 total示例值:idinvoice:12300价格:100€percentageTax1:10%tax1 = 10€percentageTax2:5%tax2:5€总计:115€(结果:100€10€5€)
好 . 如果我之前评论的参数是“true”,我必须更新百分比,然后更新总数 . 我需要用新百分比替换“旧”百分比 .
好的,我可以在3个查询中完成:
update invocies set percentageTax1=20,tax1=price *(percentageTax1/100) where idInvoice=@number and percentageTax1=10
update invocies set percentageTax2=7,tax2=price *(percentageTax2/100) where idInvoice=@number and percentageTax2=5
update invocies set total=price+tax1+tax2 where idInvoice=@number
. But my question is:
有没有替代方法在1个查询中执行此操作?
问题2
关于更新的其他问题 .
如果我有2个链接表
示例表发明
idInvoice
总
示例表详细信息
idInovice
线
价钱
“总”字段是表“详细信息”字段“价格”的总和
如何更新“总计”字段的“查询”?
TOTAL字段需要存储在数据库中
解决方案问题2:
如果我执行此查询,则可以 . 例 .
update table1 INNER JOIN table2 ON table1.id = table2.id set table1.field1 = table2.fieldX
3 回答
如果可能,删除计算字段 .
回答问题二 . 除非有一些特殊的需要将计算结果存储在数据库中,否则每次我想对总计做任何事情时都会计算它 .
如果您正在编写StackOverflow,这可能无法扩展,但对于正常使用,它会保存数据可能不同步的位置 .
拉出要处理的发票更为常见,在代码中进行数学运算以更新值,然后将所有更新的值一次性放回数据库中 .
有一千种不同的方法可以做到这一点!
可能一个地方开始是http://code.msdn.microsoft.com/eisk
或者在这里http://www.asp.net/data-access/tutorials/an-overview-of-inserting-updating-and-deleting-data-vb