【发布时间】:2009-06-16 16:37:48
【问题描述】:
我正在使用 iReport 创建一个 JasperReport,因此,我仅限于*一个 SQL 查询。
我有一个“统计”表,其中包含“名称”(VARCHAR)、“计数”(INTEGER) 和“日期时间”(DATETIME) 列。
当“名称”为“测试”的最后一天以及上周和月份的“计数”列的总和非常简单(见下文)
工作 SQL 语句:
SELECT
SUM(count)as 'today'
FROM
statistics
WHERE
name = "test"
AND $P{oneDayAgo} <= datetime
AND datetime <= $P{now}
- 但是,由于我只有一个 SQL 语句可以使用,我需要以某种方式将它们组合起来。我尝试使用 UNION(如下所示),但这不起作用。
失败的 SQL 语句:
SELECT
SUM(count)as 'today'
FROM
statistics
WHERE
name = "test"
AND $P{oneDayAgo} <= datetime
AND datetime <= $P{now}
UNION
SELECT
SUM(count)as 'thisWeek'
FROM
statistics
WHERE
name = "test"
AND $P{oneWeekAgo} <= datetime
AND datetime <= $P{now}
UNION
SELECT
SUM(count)as 'thisMonth'
FROM
statistics
WHERE
name = "test"
AND $P{oneMonthAgo} <= datetime
AND datetime <= $P{now}
(*) 只能为图表或交叉表添加额外的查询,这都不符合我的目的。
【问题讨论】:
-
如果您发布表格定义和所需输出的示例,我相信有人可以帮助您...
标签: java sql jasper-reports ireport