我有两张桌子。一个表格存储有关库存项目的基本信息,如ID和描述。另一张表在每天结束时存储库存物品的状态;因此此表中有许多行具有相同的inventoryItemID但日期不同。下面基本上是我的表格。检索每个ID的最近记录。如何在SQL中?
TABLE: listItems
|itemRecordNumber|itemName|minStock|reorderQty|note|
| 510 | bag | 10 | 20 | |
| 511 | ball | 20 | 40 | |
| 512 | shoe | 09 | 10 | xx |
,
TABLE: inventoryTrans
|itemRecordNumber|recordType|quantity| trans_date |
| 510 | 50 | 30 | 09/12/2013 |
| 510 | 40 | 33 | 09/12/2013 |
| 510 | 50 | 35 | 08/12/2013 |
| 510 | 40 | 35 | 08/12/2013 |
| 511 | 50 | 10 | 08/12/2013 |
| 511 | 40 | 15 | 09/12/2013 |
| 512 | 50 | 33 | 07/12/2013 |
| 512 | 40 | 34 | 09/12/2013 |
现在,我要的是,从每个itemRecordNumber和类型50只的记录(销售)表inventoryTrans最近的战绩,但等待那里有更多的,如果一个项目的表listItems中的注释是'xx',我对这个结果不感兴趣。我真正需要的是这个数量。请注意,此表没有项目名称/ minStock/reorderQty,这就是为什么我需要第一个表listItems来获取该信息。
所以在单个查询我想获得,
|itemRecordNumber|itemName| trans_date |quantity|minStock|reorderQty|
| 510 | bag | 09/12/2013 | 30 | 10 | 20 |
| 511 | ball | 08/12/2013 | 10 | 20 | 40 |
所以我想这是什么信息。注意它是每个ID最近的recordType'50',但由于项目中的注释是listItems.note中的'xx',所以项目512被排除了;
现在在你批评表格的构造之前,我不能改变它。这就是Peachtree会计(我公司目前使用的软件)的表格是如何铺设的,所以这就是我必须处理的。我们的目标是生成定制的库存信息,以便更好地管理。
现在我该如何为此构造一个SQL查询。我看到有人在其他一些类似的例子中使用了LEFT JOIN,但是我不能让它起作用。
只为你的人参考,请检查[this](http://www.codinghorror.com/blog /2007/10/a-visual-explanation-of-sql-joins.html) –