微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MSaccess搜索不一致的记录

如何解决MSaccess搜索不一致的记录

我有一个表INVOICES,其列InvoiceNAME,InvoiceSUM和另一个INVOICEitems,其列InvoiceNAME,ItemNAME,ItemPRICE和ItemQTY。通过InvoiceNAME字段联接的表。

我想从INVOICES表中选择所有行,其中InvoiceSUM不等于与InvoiceNAME相关的ItemPRICE * ItemQTY的总和。换句话说,我想列出不一致的记录,其中InvoiceSUM不等于项目总数。

解决方法

一种方法使用相关的子查询:

select i.*
from invoices as i
where i.invoicesum <> (select sum(ii.price * ii.quantity)
                       from INVOICEitems as ii
                       where ii.InvoiceNAME = i.InvoiceNAME
                      );
,

您可能还希望显示结果集中订单项的值。如果是这样,则联接更合适:

select i.*,ii.item_sum
from invoices as i
inner join (
    select invoice_name,sum(item_qty * item_price) as item_sum
    from invoice_items
    group by invoice_name
)  as ii on ii.invoice_name = i.invoice_name
where i.invoice_sum <> ii.item_sum

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。