db2查询:替换“with”

db2查询:替换“with”,db2,jasper-reports,Db2,Jasper Reports,我们的代码结构如下所示: select sampleA.columnA, (select sampleB.columnA from sampleB where sampleB.ColumnB = 'test1'), (select sampleB.columnA from sampleB where sampleB.ColumnC = 'test2') from sampleA join sampleB on sampleA.id = sampleB.id where sam

我们的代码结构如下所示:

select
sampleA.columnA,
(select sampleB.columnA 
    from sampleB where sampleB.ColumnB = 'test1'),
(select sampleB.columnA 
    from sampleB where sampleB.ColumnC = 'test2')
from sampleA
join sampleB on sampleA.id = sampleB.id
where sampleA.columnB = 'test3'
发生的事情是。。如果我们只运行 从sampleB中选择sampleB.columnA,其中sampleB.ColumnB='test1' 然后返回27个结果。 类似地,它返回其他一些行,比如35行 从sampleB中选择sampleB.columnA,其中sampleB.ColumnC='test2'

但是当我们运行整个查询时,我们会得到标量错误


我们正在使用DB2,最终希望在Jasper上运行它。。Jasper不支持“with”任何其他方式?

子查询只能返回一行,请尝试以下操作:

select sampleA.columnA,
(select sampleB.columnA from sampleB where sampleB.ColumnB = 'test1' FETCH FIRST ROWS ONLY) as columnAtest1 ,
(select sampleB.columnA from sampleB where sampleB.ColumnC = 'test2' FETCH FIRST ROWS ONLY) as columnAtest2
from sampleA 
join sampleB on sampleA.id = sampleB.id
where sampleA.columnB = 'test3'
还是这个

select sampleA.columnA,
Samplec.columnA as columnAtest1, Sampled.columnA as columnAtest2
from sampleA 
join sampleB on sampleA.id = sampleB.id
cross join (select sampleB.columnA from sampleB where sampleB.ColumnB = 'test1' FETCH FIRST ROWS ONLY) Samplec
cross join (select sampleB.columnA from sampleB where sampleB.ColumnB = 'test2' FETCH FIRST ROWS ONLY) Sampled
where sampleA.columnB = 'test3'

JasperReports支持关键字With。我用WithWith做了几份报告,你能举个例子吗?因为我使用的是jasper studio 6.3.0,“with”用红色标记。。。我一删除'with'语句,查询就运行fineSample:date_range为SELECT add_monthsTRUNC$P{period_start},'MM',1*Level-1 month,Level FROM dual CONNECT BY Level,您是否试图忽略警告?如果查询是有效的,您检查了它,它也应该工作