选择一个月的每日修订小时值

问题描述 投票:0回答:1

我有两个查询第一个返回一个月的每个日期的最新修订号

select  max(a.wdcm_revision_no)
from wb_declared_capacity_master a, wb_declared_capacity_det_unit b
where a.wdcm_internal_id = b.wdcd_ref_id and b.wdcm_unit = 'HSY_Unit1' and to_char(a.wdcm_date,'MM YYYY')='08 2019' group by a.wdcm_date

以及第二个查询,它返回所有数据,而不考虑任何修订版

select a1.wdcm_date, b1.wdcd_block_no, c1.wdcd_capacity, c1.wdcd_approval, a1.wdcm_revision_no
from wb_declared_capacity_master a1, wb_declared_capacity_det_unit b1, wb_declared_capacity_detail c1
where a1.wdcm_internal_id = b1.wdcd_ref_id and a1.wdcm_internal_id = c1.wdcd_ref_id and b1.wdcm_unit = 'HSY_Unit1' and to_char(a1.wdcm_date,'MM YYYY')='08 2019'and b1.wdcd_block_no = c1.wdcd_block_no

现在,我想从第一个查询传递每个日期的最新修订版,其中第二个查询的条件希望根据这些最新修订版号返回所有值

postgresql birt
1个回答
0
投票
您可以将其合并为1个查询。第一个成为CTE,然后被送入第二个。我相信下面的内容很接近,但是由于您并未真正指出要“传递结果”的位置,因此我做出的假设似乎很可能,但这仍然是一个假设。

with latest (revision) as -- first query ( select max(a.wdcm_revision_no) from wb_declared_capacity_master a , wb_declared_capacity_det_unit b where a.wdcm_internal_id = b.wdcd_ref_id and b.wdcm_unit = 'HSY_Unit1' and to_char(a.wdcm_date,'MM YYYY')='08 2019' group by a.wdcm_date ) -- And second query which returns all the data irrespective of any revision select a1.wdcm_date , b1.wdcd_block_no , c1.wdcd_capacity , c1.wdcd_approval , a1.wdcm_revision_no from wb_declared_capacity_master a1 , wb_declared_capacity_det_unit b1 , wb_declared_capacity_detail c1 , latest where a1.wdcm_internal_id = b1.wdcd_ref_id and a1.wdcm_internal_id = c1.wdcd_ref_id and b1.wdcm_unit = 'HSY_Unit1' and to_char(a1.wdcm_date,'MM YYYY')='08 2019' and b1.wdcd_block_no = c1.wdcd_block_no and a1.wdcm_revision_no = latest.revision; ---- you didn't actually say where to "pass it in" this seems likely

我保留了您使用的联接格式,但实际上您应该开始使用现代ANSI / ISO标准联接格式。 (现代意义仅在1992年左右才出现)。 
© www.soinside.com 2019 - 2024. All rights reserved.