我需要根据某些条件加入两个表,但是没有公共/链接列。
我需要检索表B的字段以及' Actualvalue'从表A开始。条件是获取表B中的每个RangeValue和表A中的Map,以查找值在Range Start和Range End之间的位置并获取相应的ActualValue。请提供您的建议。表B中的RangeValue是唯一的
答案 0 :(得分:0)
此查询应该完成工作:
<?xml version="1.0" encoding="utf-8"?>
<GRPO>
<Goods>
<CardCode>V10000</CardCode>
<DocDate>07/11/2016</DocDate>
<DocDueDate>07/11/2016</DocDueDate>
<TaxDate>07/11/2016</TaxDate>
<GoodsLines>
<Line>
<LineNum>0</LineNum>
<ItemNo>A00003</ItemNo>
<ItemDesc>J.B Officeprint 1186</ItemDesc>
<Quantity>4</Quantity>
</Line>
<Line>
<LineNum>1</LineNum>
<ItemNo>A00004</ItemNo>
<ItemDesc>Rainbow Color Printer 5.0</ItemDesc>
<Quantity>5</Quantity>
</Line>
</GoodsLines>
</Goods>
</GRPO>
答案 1 :(得分:0)
您可以尝试以下查询: -
SELECT B.*, A.Actualvalue
FROM B INNER JOIN A
ON B.RANGEVALUE BETWEEN A.RangeStart AND A.RangeEnd
答案 2 :(得分:0)
select *,
(
select ActualValue from A
where B.RangeValue between RangeStart and RangeEnd
) as ActualValue
from B
有些原因可能是您更喜欢标量子查询而不是连接。其中一个好处是,如果范围变得混乱并且找到多个范围,它将会出错。