Thread: RE: [SQL] Mail for error in tuples

RE: [SQL] Mail for error in tuples

From
"Jackson, DeJuan"
Date:
test=> select * from test;
d                           |t 
----------------------------+--
Mon Mar 29 21:48:46 1999 CST|a 
Mon Mar 29 21:49:02 1999 CST|ab
Mon Mar 29 21:49:18 1999 CST|c 
Mon Mar 29 21:49:20 1999 CST|d 
Mon Mar 29 21:49:22 1999 CST|e 
Mon Mar 29 21:49:24 1999 CST|f 
Mon Mar 29 21:49:26 1999 CST|g 
Mon Mar 29 21:49:27 1999 CST|  
Mon Mar 29 21:49:30 1999 CST|h 
Mon Mar 29 21:51:13 1999 CST|i 
Mon Mar 29 21:51:15 1999 CST|j 
Mon Mar 29 21:51:16 1999 CST|k 
Mon Mar 29 21:51:18 1999 CST|l 
Mon Mar 29 21:51:19 1999 CST|m 
Mon Mar 29 21:51:21 1999 CST|n 
Mon Mar 29 21:51:23 1999 CST|o 
Mon Mar 29 21:51:24 1999 CST|p 
Mon Mar 29 21:51:27 1999 CST|q 
Mon Mar 29 21:51:29 1999 CST|r 
Mon Mar 29 21:51:31 1999 CST|s 
Mon Mar 29 21:51:33 1999 CST|t 
Mon Mar 29 21:51:34 1999 CST|u 
Mon Mar 29 21:51:36 1999 CST|v 
Mon Mar 29 21:51:39 1999 CST|w 
Mon Mar 29 21:51:41 1999 CST|x 
Mon Mar 29 21:51:42 1999 CST|y 
Mon Mar 29 21:51:44 1999 CST|z 
Mon Mar 29 21:51:46 1999 CST|aa
Mon Mar 29 21:51:49 1999 CST|ab
Mon Mar 29 21:51:51 1999 CST|ac
Mon Mar 29 21:51:55 1999 CST|ad
(31 rows)

test=> select min(test.d) as d, NULL as diff from test UNION ALL select
t1.d, t1.d-max(t2.d) as diff from test t1, test t2 where t2.d<t1.d group by
t1.d;
d                           |diff           
----------------------------+---------------
Mon Mar 29 21:48:46 1999 CST|               
Mon Mar 29 21:49:02 1999 CST|@ 16 secs      
Mon Mar 29 21:49:18 1999 CST|@ 16 secs      
Mon Mar 29 21:49:20 1999 CST|@ 2 secs       
Mon Mar 29 21:49:22 1999 CST|@ 2 secs       
Mon Mar 29 21:49:24 1999 CST|@ 2 secs       
Mon Mar 29 21:49:26 1999 CST|@ 2 secs       
Mon Mar 29 21:49:27 1999 CST|@ 1 sec        
Mon Mar 29 21:49:30 1999 CST|@ 3 secs       
Mon Mar 29 21:51:13 1999 CST|@ 1 min 43 secs
Mon Mar 29 21:51:15 1999 CST|@ 2 secs       
Mon Mar 29 21:51:16 1999 CST|@ 1 sec        
Mon Mar 29 21:51:18 1999 CST|@ 2 secs       
Mon Mar 29 21:51:19 1999 CST|@ 1 sec        
Mon Mar 29 21:51:21 1999 CST|@ 2 secs       
Mon Mar 29 21:51:23 1999 CST|@ 2 secs       
Mon Mar 29 21:51:24 1999 CST|@ 1 sec        
Mon Mar 29 21:51:27 1999 CST|@ 3 secs       
Mon Mar 29 21:51:29 1999 CST|@ 2 secs       
Mon Mar 29 21:51:31 1999 CST|@ 2 secs       
Mon Mar 29 21:51:33 1999 CST|@ 2 secs       
Mon Mar 29 21:51:34 1999 CST|@ 1 sec        
Mon Mar 29 21:51:36 1999 CST|@ 2 secs       
Mon Mar 29 21:51:39 1999 CST|@ 3 secs       
Mon Mar 29 21:51:41 1999 CST|@ 2 secs       
Mon Mar 29 21:51:42 1999 CST|@ 1 sec        
Mon Mar 29 21:51:44 1999 CST|@ 2 secs       
Mon Mar 29 21:51:46 1999 CST|@ 2 secs       
Mon Mar 29 21:51:49 1999 CST|@ 3 secs       
Mon Mar 29 21:51:51 1999 CST|@ 2 secs       
Mon Mar 29 21:51:55 1999 CST|@ 4 secs       
(31 rows)

I don't think that you can accomplish this in an update.
but I hope this helps,-DEJ

> -----Original Message-----
> From:    Vikrant Rathore [SMTP:vikrant@chemquick.com]
> Sent:    Friday, June 11, 1999 2:42 PM
> To:    Jackson, DeJuan
> Cc:    pgsql-sql@postgreSQL.org
> Subject:    Re: [SQL] Mail for error in tuples
> 
> Dear Jackson,
> 
>     The tuple in radius tables are there in the attached file.
> Now the following things are to be done:
>     1. Select a tuple and subsequent tuple and find the timespan between
> the
> datetime of first and the subsequent tuple. if the timespan is greater
> than the
> duration given in the subsequent tuple then update the subsequent tuple
> with
> duration set to the timespan between the first selected tuple and
> subsequent
> tuple:
> Consider the following tuples
> first tuple:
>     uname=penguin
>     logdate=06/12/1999
>     logtime=11:00:00AM
>     duration=1 Hrs
>     rest can be left as such
> subsequent tuple
>     uname=penguin
>     logdate=06/12/1999
>     logtime=12:00:00 PM
>     duration=2 Hrs
> Then in the subsequent tuple the duration is wrong this data is taken from
> a
> external source now want to validate it by applying the above condition so
> the
> duration in the second tuple should be set to
>     uname=penquin
>     logdate=06/12/1999
>     logtime=12:00:00 PM
>     duration=1 Hrs.
> Now can you tell me how can i achieve this in postgresql. I am new to
> postgresql.
> Thanks a lot for your prompt reply.
> 
> Regards,
> Vicky
> 
> 
> 
> "Jackson, DeJuan" wrote:
> 
> > It might be best if you gave us an actual example or two in stead of
> trying
> > to describe the situation (I couldn't follow it, I have no idea what a
> > radius log is either).  So, show us what you're after.
> >         -DEJ
> >
> > > -----Original Message-----
> > > From: Vikrant Rathore [SMTP:vikrant@chemquick.com]
> > > Sent: Friday, June 11, 1999 1:45 PM
> > > To:   pgsql-sql@postgreSQL.org
> > > Subject:      [SQL] Mail for error in tuples
> > >
> > > Dear friend,
> > >
> > >     I have a table named radius with structure
> > >
> > > Table    = radius
> > >
> +----------------------------------+----------------------------------+---
> > > ----+
> > >
> > > |              Field               |              Type
> |
> > > Length|
> > >
> +----------------------------------+----------------------------------+---
> > > ----+
> > >
> > > | uname                            | char()
> > > |   256 |
> > > | logdate                          | date
> > > |     4 |
> > > | logtime                          | time
> > > |     8 |
> > > | duration                         | timespan
> > > |    12 |
> > > | status                           | char()
> > > |    20 |
> > > | nasadd                           | char()
> > > |    20 |
> > > | port                             | int4
> > > |     4 |
> > > | bytesin                          | int4
> > > |     4 |
> > > | bytesout                         | int4
> > > |     4 |
> > > | packin                           | int4
> > > |     4 |
> > > | packout                          | int4
> > > |     4 |
> > > | misc                             | int4
> > > |     4 |
> > >
> +----------------------------------+----------------------------------+---
> > > ----+
> > >
> > > I keep my radius log in this table.
> > >
> > > Now in this logdate and logtime are the last logout date and time for
> > > the particular user.
> > >
> > > But sometimes the logdate and logtime and duration are wrong so
> inorder
> > > to correct i have to do following can anyone help me how to do it.
> > >
> > > I want to select the tuples of particular user and test the first
> > > logdate and logtime with the next tuples logdate and logtime and the
> > > duration in the second tuple should not be greater than the difference
> > > of this two tuples if its greater than the difference then it needs to
> > > be set to the difference of the two logdate and logtime. I have to
> test
> > > it till the last tuple.
> > > So can anyone suggest me query for this job.
> > >
> > > Thanks in advance.
> > >
> > > Regards,
> > > Vicky
> > >
> > > << File: tuples.out >>