我有 3 个表,它们使用类别代码和标识代码来确定一个唯一值,我们称之为记录。存在具有相同标识代码和不同类别代码的值,因此我需要为 3 个表中的每一个连接这两个值。
我对 SQL 很陌生,所以我可能犯了一个简单的错误,但我的第三个表的结果与返回行的其余结果不一致。
我最好的猜测是 b/c 我有多个表 a 的结果,但表 c 只有 1 个结果,但表 b 也是如此,表 b 的数据是准确的。
示例代码
select a.category_code,
a.identification_code,
a.multiple_values,
b.date,
c.unique_value
from table_1 a
join table_2 b
on a.category_code = b.category_code
and a.identification_code = b.identification_code
join table_3 c
on c.category_code = a.category_code
and c.identification_code = a.identification_code
Where a.multiple_values in ('a', 'b', 'c', 'd', 'e', 'f')
and trunc(b.date) >= '01-MAY-2013'
and trunc(b.date) <= '31-MAY-2013'
样本结果
category_code/ identification_code/ multiple_values / date / unique_value
1520 / 557892211 / a / 05/25/2013 / Iowa
1520 / 557892211 / b / 05/25/2013 / Utah
1520 / 557892211 / c / 05/25/2013 / Arizona
1520 / 557892211 / d / 05/25/2013 / Texas
1520 / 557892211 / e / 05/25/2013 / Arkansas
1520 / 557892211 / f / 05/25/2013 / Kansas
我遇到的问题是在实际数据中,1520-557892211 的唯一值是爱荷华州,但我只得到了一次正确的值,而对于我的其余数据,唯一值没有正确映射。