【发布时间】:2018-02-07 07:51:05
【问题描述】:
我正在尝试在 Teradata 中确定此查询的等效版本。我遇到的主要问题是试图找出一种方法,使用两个不同的键(package_unit_id 和retail_unit_id)两次加入同一列。在 Access 中,我能够分配一个别名,允许我选择 tbleDIRGA_ItemUnit.Unit_Name 列两次。这在 Teradata 中是如何工作的?如果我不清楚,请告诉我。
在 Microsoft Access 中:
SELECT
tblDIRGA_Item.SubTeam_No,
tblDIRGA_ItemIdentifier.Identifier,
tblDIRGA_ItemUnit.Unit_Name AS PackUOM,
tblDIRGA_ItemUnit_1.Unit_Name AS RetailUOM
FROM (((tblDIRGA_ItemIdentifier AS tblDIRGA_ItemIdentifier_1
INNER JOIN tblDIRGA_Item
ON tblDIRGA_ItemIdentifier.Item_Key = tblDIRGA_Item.Item_Key)
INNER JOIN tblDIRGA_ItemUnit
ON tblDIRGA_Item.Package_Unit_ID = tblDIRGA_ItemUnit.Unit_ID)
INNER JOIN tblDIRGA_ItemUnit AS tblDIRGA_ItemUnit_1
ON tblDIRGA_Item.Retail_Unit_ID = tblDIRGA_ItemUnit_1.Unit_ID)
在 Teradata 中:
在 Teradata 中,我尝试使用两个不同的键 (package_unit_id) 和 (retail_unit_id) 从 ir_item_unit_v 表中选择 unit_name 两次。这在上面的 Access 中是如何工作的?
SELECT
st.subteam_no
ik.identifier
**u.unit_name AS RetailUOM,**
**uu.unit_name AS PackUOM**
FROM DRG_R.IR_PRICE_V ip
JOIN ir_item_identifier_v ik
ON ip.region = ik.region
AND ik.item_key = ip.item_key
JOIN ir_item_v i
ON ip.region = i.region
AND i.item_key = ip.item_key
**JOIN ir_item_unit_v u AS ir_item_unit_1_v uu
ON i.package_unit_id=u.unit_id
AND i.region=u.region**
**JOIN ir_item_unit_v u
ON i.retail_unit_id=u.unit_id
AND i.region=u.region**
【问题讨论】:
-
文档是怎么说的?
标签: join inner-join teradata correlated-subquery