0

我正在尝试从两个表中获取数据,但它似乎并没有提取所有符合条件的记录。

这是我的查询:

SELECT Parts."Part Number",Parts."Description",Parts."Location",Parts."Qty In Stock",Parts."LastCost",Parts."Cost Price",Parts."Retail Price",Transact."Type"
FROM Transact
INNER JOIN Parts
ON Transact."PartNumber"=Parts."Part Number"
WHERE Transact.Type = 'Non-stock Purch'

我正在尝试提取每条具有“非库存采购”的记录,然后从零件数据库中提取该零件的描述,因此我包含了“描述”、“成本”、“最后成本”等.

我在查询中做错了什么,这意味着它不会获取所有需要的信息,如果我运行:

select * from transact x
where x.Type = 'Non-stock Purch'
order by x.PartNumber

这将返回 268 条记录,我之前的查询应该返回相同的数字,但实际上只返回 111,我知道它们必须存在于另一个表中(我也检查过(以防出现问题))。

此外,如果我错误地编写了这些查询或格式不正确,请告诉我!

谢谢。

4

2 回答 2

1

Parts 表可能没有与 Transact 表中的记录匹配的记录。您正在执行 INNER JOIN;如果 Parts 中没有记录的部件号出现在 Transact 的记录中,则不会返回任何行。

如果您想要 Transact 中的所有记录,以及 Parts 中的数据(如果存在),您可以执行 LEFT JOIN;如果没有匹配项,则 Parts 中的所有列都将在结果中为空。

于 2012-04-20T20:31:21.727 回答
0

我认为您的表可能没有与 Transact 表中的记录匹配的记录。

于 2012-04-20T20:56:34.093 回答