我对SQL很新,之前做过一些连接但没有像这样复杂.
基本上,我要做的是将许多表连接在一起以显示报告的总体数据.主表g,是我希望看到的详细程度. g与附加到其上的所有表格具有一对多关系. GROUP BY会消除这些重复吗?
我尝试过使用SELECT DISTINCT,但我不确定这是否是最佳解决方案.
这是我正在运行的SQL的输出ORA-00904:“a”.“akey”:无效的标识符.
SELECT
a.afield123 ORDER_QTY,
b.bfield123 MANUF,
c.cfield123 ORDER_DATE,
d.dfield123 PATIENT_CREATE_DATE,
e.efield123 PAYOR_CLASS,
f.ffield123 ID
FROM
schema123.a12345 a,
schema123.b12345 b,
schema123.c12345 c,
schema123.d12345 d,
schema123.e12345 e,
schema123.f12345 f,
LEFT JOIN schema123.g12345 g ON
(a.akey = b.akey AND
c.ckey = d.ckey AND
e.ekey = f.ekey)
这是一些示例数据
G表(主表)
主键:gfield123
外键:akey,bkey,ckey,dkey,ekey,fkey,hkey
gfield123 gfield124 akey bkey ckey dkey ekey fkey hkey
1 8/1/2017 1234 2234 3234 4234 5234 6234 7234
一张桌子
主键:akey
外键:gfield123,bkey
akey afield123 gfield123 bkey
1234 20 1 2234
1235 40 1 2234
B表
主键:bkey
外键:gfield123,ckey,akey
bkey bfield123 gfield123 akey ckey
2234 COMPANY1 1 1234 3234
C表
主键:ckey
外键:gfield123,bkey,dkey
ckey cfield123 gfield123 bkey dkey
3234 8/5/2017 1 2234 4234
D表
主键:dkey
外键:gfield123,ckey,ekey
dkey dfield123 gfield123 ckey ekey
4234 7/1/2017 1 3234 5234
E表
主键:ekey
外键:gfield123,fkey
ekey efield123 gfield123 fkey
5234 MEDICARE 1 6234
F表
主键:fkey
外键:gfield123
fkey ffield123 gfield123
6234 ABC123 1
H表
主键:hkey
hkey hfield123
7234 9999
预期结果
gfield123 afield123 bfield123 cfield123 efield123 ffield123 hfield123
1 60 COMPANY1 8/5/2017 MEDICARE ABC123 9999
编辑:SQL简化,数据样本,预期结果