首页 文章

更新查询(access&vb.net)

提问于
浏览
3

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 回答

  • 2

    如果可能,删除计算字段 .

    update invocies 
    set percentageTax1 = IIf(percentageTax1=10, 20, percentagetax1)
     , percentageTax2 = IIf(percentageTax2=5, 7, percentageTax2)
    where idInvoice=@number AND (percentageTax1=10 OR percentageTax2=5)
    
  • 1

    回答问题二 . 除非有一些特殊的需要将计算结果存储在数据库中,否则每次我想对总计做任何事情时都会计算它 .

    如果您正在编写StackOverflow,这可能无法扩展,但对于正常使用,它会保存数据可能不同步的位置 .

  • 1

    拉出要处理的发票更为常见,在代码中进行数学运算以更新值,然后将所有更新的值一次性放回数据库中 .

    有一千种不同的方法可以做到这一点!

    可能一个地方开始是http://code.msdn.microsoft.com/eisk

    或者在这里http://www.asp.net/data-access/tutorials/an-overview-of-inserting-updating-and-deleting-data-vb

相关问题