我正在开发仓库管理软件。
我有三张桌子:itemstock, documents, doc_pcs
itemstock
个字段(并非所有字段都显示):
rfid_no
(这是唯一的主键)item_name
status
documents
字段:
id
doc_date
doc_type
doc_pcs
字段:
id
id_doc
|这两个是主键pos
| (id_doc
已与documents.id
)rfid_no
(来自itemstock.rfid_no
)第一张表用于收集物品的记录,从此表中没有删除任何内容,当特定物品发生某些事情时,状态会发生变化(发送给客户,返回等)。
Documents
和doc_pcs
表存储文档数据。
doc_type
用于标记文档中的项目是进出仓库。
问题是: 我需要创建一个查询,显示截至给定日期的所有股票。
换句话说:
它应该显示今天的所有项目itemstock
与status=6
("存储") MINUS 记录rfid_no
的匹配项与doc_pcs
相关的documents
日期今天和指定日期以及doc_type="out"
PLUS 记录rfid_no
的{{1}}匹配doc_pcs
与今天之间的匹配给定日期和documents
现在在这里和那里寻找任何线索,我找不到任何能引导我解决问题的方法。我会感激任何帮助!
示例数据:
doc_type="in"
(截至今天):
itemstock
00300D0909DA, "tshirt", 6
00300D0909DB, "apron", 6
00300D0909DC, "tshirt", 6
00300D0909DD, "trousers", 6
00300D0909DE, "tshirt", 1
00300D0909DF, "trousers", 1
00300D0909E0, "trousers", 6
:
documents
0,2015-08-01,"in"
1,2015-08-02,"in"
2,2015-08-03,"out"
3,2015-08-04,"in"
4,2015-08-05,"out"
5,2015-08-06,"in"
:
doc_pcs
包含字段0, 1, 00300D0909DA
0, 2, 00300D0909DE
1, 1, 00300D0909DF
1, 2, 00300D0909DD
2, 1, 00300D0909DE
3, 1, 00300D0909DB
4, 1, 00300D0909DF
5, 1, 00300D0909DC
5, 2, 00300D0909E0
和doc_date=2015-08-04
的给定rfid_no
的查询结果应为:
item_name
编辑: 我设法进行了以下查询,但它无休止地执行,因此我认为有些事情是错误的:
00300D0909DA, "tshirt"
00300D0909DB, "apron"
00300D0909DD, "trousers"
00300D0909DF, "trousers"
答案 0 :(得分:0)
似乎你可以从今天的价值观开始,然后向后工作,或者你可以从“第0天”开始并向前工作。通过存储“今天”的库存计数,您正在对数据进行非规范化,因此我选择第二种方法(也许您可以保存自己的表格)。
假设从'第0天'起所有股票都是空的。要获得给定日期的库存数量(p-query):
Scales page to fit