【发布时间】:2016-09-02 12:01:47
【问题描述】:
我有三张桌子,一张清楚地包含要出售的物品。包含项目供应商名称的名称。包含购买金额项目的交易,即发票。
我想按日期记录每个项目的历史记录,但我遇到了麻烦,因为当我这样做时,所有数据都包括在内,我想要的是按日期显示的不同价格,如下所示。
我有什么。
tbl_Items
--------
item_ID int
itemName varchar(500)
supplier_ID int
tbl_Suppliers
-------------
sup_ID int
sup_Name varchar(500)
tbl_Invoices
------------
inv_Num int
inv_Date date
item_ID int
sup_ID int
inv_amount int
如您所见,商品金额在发票中,因为价格会根据我们的销售对象而变化,因此无需固定价格。如前所述,我想创建应该如下所示的价格历史记录。
inv.inv_amount | inv.inv_Date | item.itemName | s.sup_Name |
----------------------------------------------------------------
200 | 07-01-2016 | Ballpen | Panda |
190 | 07-16-2016 | Ballpen | Panda |
250 | 07-16-2016 | Ballpen | Panda |
400 | 07-16-2016 | Notebook | Aspire |
420 | 07-21-2016 | Notebook | Aspire |
----------------------------------------------------------------
我使用表前缀作为数据来源的参考,就像我对我拥有的代码使用的那样。我输出的代码是这样的。
inv.inv_amount | inv.inv_Date | item.itemName | s.sup_Name |
----------------------------------------------------------------
200 | 07-01-2016 | Ballpen | Panda |
200 | 07-01-2016 | Ballpen | Panda |
200 | 07-01-2016 | Ballpen | Panda |
190 | 07-16-2016 | Ballpen | Panda |
250 | 07-16-2016 | Ballpen | Panda |
400 | 07-16-2016 | Notebook | Aspire |
420 | 07-21-2016 | Notebook | Aspire |
----------------------------------------------------------------
它有冗余数据,我只需要不同的价格,日期只是了解价格何时下跌或上涨的参考。希望我提供了足够的信息。
【问题讨论】:
-
是什么部分给您带来了麻烦?
-
@DanBracuk 我在这里的部分包括所有已售价格,如果价格与之前的价格不同,我只需要获取数据。例如。圆珠笔在 8 月 1 日售出,8 月 2 日售出 50。50 售出,8 月 3 日售出 50,8 月 5 日售出 45,8 月 6 日售出 45,8 月 7 日售出 60。我想要一份显示圆珠笔历史记录的报告说明圆珠笔在 8 月 1 日以 50 的价格出售,8 月 5 日以 45 的价格出售,8 月 7 日以 60 的价格出售。
-
继续使用新发票:您是在尝试从触发器构建价格历史日志,还是在插入发票表后的第二个插入语句,或者您是在尝试捕获价格之后记录?一旦我知道了,那么我们就必须知道你想如何处理导入当前历史。
-
不,不是触发器,从我很久以前从链接中看到的,他们使用了语句。如果价格与之前的记录不同,那么它也会包含在报告中。
标签: sql sql-server sql-server-2008 tsql