Ms access 防止价格自动更新
我想问一下如何防止价格自动更新 例如: 零件表中有名称、价格 2月21日,我创建了发票1,当时1080 TI的价格是500$ 比2月28日价格改为650美元,和我创建的发票相同 但问题是,当我更新零件表(发票2)中的价格时,发票1的价格也从500美元更改为650美元,我想防止这种情况发生Ms access 防止价格自动更新,ms-access,Ms Access,我想问一下如何防止价格自动更新 例如: 零件表中有名称、价格 2月21日,我创建了发票1,当时1080 TI的价格是500$ 比2月28日价格改为650美元,和我创建的发票相同 但问题是,当我更新零件表(发票2)中的价格时,发票1的价格也从500美元更改为650美元,我想防止这种情况发生 有人能告诉我怎么做吗?创建发票时只需阅读价格 创建发票时,将单价保存在发票行表中 或者,将价格更改保存为有效日期。然后,在提取发票价格时,查找最新日期早于或等于交货日期或发票日期的价格。此解决方案使用三个表 零
有人能告诉我怎么做吗?创建发票时只需阅读价格 创建发票时,将单价保存在发票行表中
或者,将价格更改保存为有效日期。然后,在提取发票价格时,查找最新日期早于或等于交货日期或发票日期的价格。此解决方案使用三个表 零件
- PartID=自动编号
- PartName=文本
主键=PartID
- PartID=编号(外键)
- 价格=货币
- 开始日期=日期/时间
主键=(PartID,StartDate)
- 发票ID=编号
- PartID=编号(外键)
- 发票日期=日期/时间
主键=(发票ID、PartID、发票日期)
SELECT InvoiceID
, InvoiceDate
, PartName
, Price
FROM (Invoices Inv LEFT JOIN Parts ON Inv.PartID = Parts.PartID)
LEFT JOIN Prices P1 ON Inv.PartID = P1.PartID AND
Inv.InvoiceDate>=P1.StartDate
WHERE NOT EXISTS (
SELECT 1
FROM Prices P2
WHERE P2.PartID = P1.PartID AND
P2.StartDate<=Inv.InvoiceDate AND
P2.StartDate>P1.StartDate
)
源代码,因为我忘记了详细信息….谢谢您的帮助!谢谢你的帮助!
+--------+---------+------------+
| PartID | Price | StartDate |
+--------+---------+------------+
| 1 | £500.00 | 01/06/2017 |
| 1 | £650.00 | 01/02/2018 |
+--------+---------+------------+
+-----------+--------+-------------+
| InvoiceID | PartID | InvoiceDate |
+-----------+--------+-------------+
| 1 | 1 | 02/06/2017 |
| 2 | 1 | 01/03/2018 |
+-----------+--------+-------------+
SELECT InvoiceID
, InvoiceDate
, PartName
, Price
FROM (Invoices Inv LEFT JOIN Parts ON Inv.PartID = Parts.PartID)
LEFT JOIN Prices P1 ON Inv.PartID = P1.PartID AND
Inv.InvoiceDate>=P1.StartDate
WHERE NOT EXISTS (
SELECT 1
FROM Prices P2
WHERE P2.PartID = P1.PartID AND
P2.StartDate<=Inv.InvoiceDate AND
P2.StartDate>P1.StartDate
)
+-----------+-------------+----------+---------+
| InvoiceID | InvoiceDate | PartName | Price |
+-----------+-------------+----------+---------+
| 1 | 02/06/2017 | MyPart | £500.00 |
| 2 | 01/03/2018 | MyPart | £650.00 |
+-----------+-------------+----------+---------+