【发布时间】:2014-10-22 19:06:11
【问题描述】:
我很难让我的报告正常工作。我有一个 purchaseOrder 表,其中包含 1 个地址 ID,它代表送货地址。与 purchaseOrder 关联的供应商也有一个地址 ID,它表示帐单地址。
如果您对我的解释感到困惑,这是关系。
我想知道如何告诉我的报告地址记录属于 vendor 或 purchaseOrder。任何建议或帮助将不胜感激。
查询的原始SQL,忽略长选择。
SELECT tbl_purchaseOrder.ID, tbl_purchaseOrder.purchaseOrderDate, tbl_vendor.salesContact, tbl_vendor.phone, tbl_vendor.extension, tbl_vendor.fax, tbl_vendor.vendorNo, tbl_vendor.vendorName, tbl_address.address, tbl_address.city, tbl_address.provinceOrState, tbl_address.postalCode, tbl_address.country, tbl_purchaseOrder.shipVIA, tbl_purchaseOrder.FOB, tbl_purchaseOrder.term, tbl_PODetails.quantityOrder, tbl_rawItemList.ItemSerialCode, tbl_PODetails.dueDate, tbl_PODetails.unitCost, tbl_PODetails.unit, tbl_rawItemList.description, tbl_PODetails.specialInstructions, tbl_purchaseOrder.requistionedBy, [unitCost]*[quantityOrder] AS Total
FROM tbl_rawItemList INNER JOIN (((tbl_address INNER JOIN tbl_purchaseOrder ON tbl_address.ID = tbl_purchaseOrder.addressID) INNER JOIN tbl_vendor ON (tbl_vendor.ID = tbl_purchaseOrder.vendorID) AND (tbl_address.ID = tbl_vendor.addressID)) INNER JOIN tbl_PODetails ON tbl_purchaseOrder.ID = tbl_PODetails.purchaseOrderID) ON tbl_rawItemList.ID = tbl_PODetails.rawItemListID
WHERE (((tbl_purchaseOrder.ID)=[Enter a PO number:]));
【问题讨论】:
-
您将能够基于给
tbl_adress的别名。您应该有两个别名,因为您要链接到它两次。你能告诉我们查询是什么样的吗? -
只是一个快速的想法:你为什么有一个独立的地址表?每个供应商都有自己的地址,每个客户/买家都有自己的地址。您不会通过拥有独立的地址表来节省数据库空间,因为无论如何您都要为每个供应商键入地址.. 在您的情况下:您需要添加两个地址表,一个用于供应商,一个用于采购订单并从中获取地址purchaseorder_address 表
-
@krishKM 当时,这似乎是合乎逻辑的,因为我需要 5 个不同的表中的地址,所以我认为只为它创建 1 个表并为其分配一个 AddressType 会更容易。跨度>
-
@Linger 您想要查询 GUI 或 SQL 格式的图片吗?
-
实际的sql语句。然后我们可以准确地告诉你如何引用这两个不同的地址。
标签: sql ms-access report ms-access-2010