朋友......我这里有一个样本数据。
child.equals(parent) == parent.equals(child)
我需要通过分组PRD&来对金额字段求和。范围之间的日期(01-JUL-year和-30-June-year + 1)。 示例:2003-2004年度,需要比较2003年7月1日至2004年6月30日期间的范围。期望的输出应如下所示:
+-----------+-------+---------------+
| PRD | AMT | Date |
+-----------+-------+---------------+
| 1 | 100 | 14-JUL-03 |
| 1 | 100 | 16-JUN-04 |
| 1 | 200 | 18-JUL-04 |
| 1 | 200 | 14-MAY-05 |
| 2 | 100 | 20-JUL-05 |
| 2 | 100 | 14-OCT-05 |
| 2 | 100 | 26-APR-06 |
+-----------+-------+---------------+
任何提供查询/逻辑的帮助都将非常高兴。非常感谢你!
答案 0 :(得分:3)
组标准是prd,第二个标准是从日期中提取6个月并截断为年份:
SELECT prd,
SUM (amt),
TO_CHAR (ADD_MONTHS ("Date", -6), 'YYYY') || '-' || TO_CHAR (ADD_MONTHS ("Date", 6), 'YYYY') AS year
FROM table_name
GROUP BY prd, TO_CHAR (ADD_MONTHS ("Date", -6), 'YYYY') || '-' || TO_CHAR (ADD_MONTHS ("Date", 6), 'YYYY')
ORDER BY 1, 3