我需要将每日表格动态地汇总为每周和每月。使用SQL汇总每周每月数据
DAILY_TABLE:
----------------------------------------------
SECTOR | AREA | STVAL | HRDATE
----------------------------------------------
USJ | TD | 8 | 17-OCT-2015 00:00:00
USJ | TJ | 4 | 17-OCT-2015 00:00:00
USJ | TD | 8 | 18-OCT-2015 00:00:00
USJ | TJ | 4 | 18-OCT-2015 00:00:00
USJ | TD | 8 | 19-OCT-2015 00:00:00
USJ | TJ | 4 | 19-OCT-2015 00:00:00
USJ | TD | 8 | 20-OCT-2015 00:00:00
USJ | TJ | 4 | 20-OCT-2015 00:00:00
USJ | TD | 8 | 21-OCT-2015 00:00:00
USJ | TJ | 4 | 21-OCT-2015 00:00:00
USJ | TD | 8 | 22-OCT-2015 00:00:00
USJ | TJ | 4 | 22-OCT-2015 00:00:00
USJ | TD | 8 | 23-OCT-2015 00:00:00
USJ | TJ | 4 | 23-OCT-2015 00:00:00
USJ | TD | 8 | 24-OCT-2015 00:00:00
USJ | TJ | 4 | 24-OCT-2015 00:00:00
USJ | TD | 8 | 25-OCT-2015 00:00:00
USJ | TJ | 4 | 25-OCT-2015 00:00:00
WEEKLY_TABLE:
----------------------------------------------
SECTOR | AREA | STVAL | HRDATE
----------------------------------------------
USJ | TD | 16 | 18-OCT-2015 00:00:00
USJ | TJ | 8 | 18-OCT-2015 00:00:00
USJ | TD | 56 | 25-OCT-2015 00:00:00
USJ | TJ | 28 | 25-OCT-2015 00:00:00
MONTHLY_TABLE:
----------------------------------------------
SECTOR | AREA | STVAL | HRDATE
----------------------------------------------
USJ | TD | 72 | 25-OCT-2015 00:00:00
USJ | TJ | 36 | 25-OCT-2015 00:00:00
假设,本程序本周不运行,但在下周运行,它必须汇总前一周和当前星期的数据。
编辑1:
SELECT CAST(MIN([HRDATE]) AS VARCHAR(20))
+' TO '
+ CAST(MAX([HRDATE]) AS VARCHAR(20)) AS HRDATE,
SUM(STVAL),
SECTOR,
AREA
FROM DAILY_TABLE
GROUP BY HRDATE
HAVING COUNT(DISTINCT[HRDATE]) = 7;
SELECT CAST(MIN([HRDATE])AS VARCHAR(20))+” TO '+ CAST(MAX([HRDATE])AS VARCHAR(20))作为HRDATE, SUM(STVAL),扇区,区域 FROM DAILY_TABLE。我是新来的sql。 GROUP BY HRDATE HAVING COUNT(DISTINCT [HRDATE])= 7 –
您是否需要纯粹的SQL解决方案或PL/SQL过程? – diziaq
pl sql程序 –