Re: URGENT!!! SELECT statement please help

From: "Guy Rouillier" <guyr(at)masergy(dot)com>
To: <sconeek(at)gmail(dot)com>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: URGENT!!! SELECT statement please help
Date: 2006-03-15 23:43:33
Message-ID: CC1CF380F4D70844B01D45982E671B230137A7B9@mtxexch01.add0.masergy.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Why have you asked the same question 3 times in five minutes?
Additional responses below.

sconeek(at)gmail(dot)com wrote:
> hi all,
>
> i have a web based java application with a postgres db.
>
> now i am trying to generate a temp table which contains all hour
> records for a selected date range. eg. if the user selects 2006-03-14
> as from and 2006-03-14 as to, the system should insert 24 hour
> records with their individual time stamps (eg 2006-03-14 12:00:00).
>
> now currently, i have a select statement which searches another
> table, finds data and then inserts them. but the problem is that if
> there is no data for an hour, it does not insert anything.
>
> now i can think of a couple of solutions,
> 1. insert additional records using a second statement, which compares
> the table and inserts any missing records 2. insert data as usual and
> then using a second statement, compare the content and insert any
> missing records.
>
> my current implementation is:
> " INSERT INTO temp_table (edit_time,edit_time_count) " +
> " SELECT to_timestamp(to_char (last_edit_timestamp,'YYYY-MM-DD
> HH24:00:00'), 'YYYY-MM-DD HH24:00:00')AS
> edit_time, " + " count(to_char (last_edit_timestamp,'YYYY-MM-DD
> HH24:00:00')) as edit_time_count " + " FROM " + tableName + " " +
> sqlWhereStr + " GROUP BY to_char (last_edit_timestamp,'YYYY-MM-DD
> HH24:00:00') " + " ORDER BY to_char (last_edit_timestamp,'YYYY-MM-DD
> HH24:00:00'); ";
>
> the problem is that if the select statement does not return anything
> for a particular hour record, that record is not inserted. now i
> would like to have a table with all records including hours with 0
> count.
>
> can somebody please help me urgently. i would really appreciate it.
> thanks.

Don't rely on your SELECT to provide the timestamps. You know what
dates you are working with, and you know the hour range (1-24). So
prefill the table with 24 rows for each day in the date range. Then use
your select statement to update any rows for which you have data.

--
Guy Rouillier

Browse pgsql-general by date

  From Date Subject
Next Message Abbath 2006-03-16 00:09:19 Re: tsearch is slow
Previous Message Jaime Casanova 2006-03-15 23:34:23 Re: Concurrencia