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,您是否试图忽略警告?如果查询是有效的,您检查了它,它也应该工作