I am trying to create a table that lists the date from the first date of a record in the system through the current date, a count at 8:00 AM Each day of how many inmates we have in the jail and a full day count of inmates in the jail. Once this table is created through today. I want to run a script daily to add the counts from the previous day at 8:00 am and for the full day. I cannot get this to work. Any help would be appreciated.
Eg.
DATE AM_COUNT FULL_DAY_COUNT
09/07/2001 08:00:00 201 215
09/08/2001 08:00:00 199 203
09/09/2001 08:00:00 202 205
CREATE TABLE CJI_DAILY_POPULATION(
POPULATION_DATE DATE NOT NULL,
AM_COUNT NUMBER (10),
FULL_DAY_COUNT NUMBER (10)0;
COMMIT;
DECLARE
POP_DATE DATE := TO_DATE('09/07/2001 08:00:00', 'MM/DD/YYYY HH24:MI:SS');
AM_CT NUMBER (10)
FULL_CT NUMBER (10)
BEGIN
WHILE POPULATION_DATE < SYSTIMESTAMP
LOOP
AM_CT = (SELECT COUNT(BOOK_ID)
FROM CJI_BOOK_RELEASE
WHERE TO_DATE(POP_DATE, 'MM/DD/YYYY HH24:MI:SS')
BETWEEN BOOKDATE AND RELEASEDATE
FULL_CT = (SELECT COUNT(BOOK_ID)
FROM CJI_BOOK_RELEASE
WHERE TO_DATE(POP_DATE, 'MM/DD/YYYY')
INSERT INTO CJI_DAILY_POPULALATION VALUES (POP_DATE, AM_CT, FULL_CT)
POP_DATE = POP_DATE + 1;
END LOOP;
END;
Eg.
DATE AM_COUNT FULL_DAY_COUNT
09/07/2001 08:00:00 201 215
09/08/2001 08:00:00 199 203
09/09/2001 08:00:00 202 205
CREATE TABLE CJI_DAILY_POPULATION(
POPULATION_DATE DATE NOT NULL,
AM_COUNT NUMBER (10),
FULL_DAY_COUNT NUMBER (10)0;
COMMIT;
DECLARE
POP_DATE DATE := TO_DATE('09/07/2001 08:00:00', 'MM/DD/YYYY HH24:MI:SS');
AM_CT NUMBER (10)
FULL_CT NUMBER (10)
BEGIN
WHILE POPULATION_DATE < SYSTIMESTAMP
LOOP
AM_CT = (SELECT COUNT(BOOK_ID)
FROM CJI_BOOK_RELEASE
WHERE TO_DATE(POP_DATE, 'MM/DD/YYYY HH24:MI:SS')
BETWEEN BOOKDATE AND RELEASEDATE
FULL_CT = (SELECT COUNT(BOOK_ID)
FROM CJI_BOOK_RELEASE
WHERE TO_DATE(POP_DATE, 'MM/DD/YYYY')
INSERT INTO CJI_DAILY_POPULALATION VALUES (POP_DATE, AM_CT, FULL_CT)
POP_DATE = POP_DATE + 1;
END LOOP;
END;