我正在使用的数据库(我无法更新或修改其中的任何内容,我只应该查询它以获取我正在创建的报告)以一种相当奇怪的方式设置。有时信息需要一百万个中间表才能获取,而其他时候一切都在同一个表中。
为了获得我需要的唯一地址,我必须加入 3 个表(包含发票信息的表到包含将数字分配给每个组织的键的表到包含数据库中所有组织的表)。三张表中的最后一张包含每家公司,但公司可以具有相同的不同角色(例如,一家公司可以是供应商,一个可以是客户,一个可以是合作伙伴等),因此该表有“类型”列表示角色,其中 1 = 供应商、2 = 客户等。
示例代码和数据如下(抱歉,我似乎无法在此处正确格式化表格):
select * from a
join b on a.id=b.id
join c on b.orgid=c.orgid
数据:
a.OrderID b.Organization c.Role
-----------------------------------------
123 Acme Inc. 1
123 Roadrunner Inc. 2
123 Venture Co. 2
我正在进行的查询需要提取订单 ID、供应商、客户和合作伙伴,但无论我如何加入它或如何尝试使用WITH
语句,它都会生成 3 行,在每行中,三个角色之一是已命名,其余为 NULL。
有人能帮忙吗?
非常感谢您花时间阅读这个冗长的问题。