Select last value for each day from table

Hi!
I have a table that stores several measures for each day. I need two queries against this table and I am not quite sure how to write them.
The table stores these lines (sample data)
*DateCol1                 Value       Database*
27.09.2009 12:00:00       100           DB1
27.09.2009 20:00:00       150           DB1
27.09.2009 12:00:00       1000          DB2
27.09.2009 20:00:00       1100          DB2
28.09.2009 12:00:00       200           DB1
28.09.2009 20:00:00       220           DB1
28.09.2009 12:00:00       1500          DB2
28.09.2009 20:00:00       2000          DB2Explanation of data in the sample table:
We measure the size of the data files belonging to each database one or more times each day. The value column shows the size of the database files for each database at a given time (European format for date in DateCol1).
What I need:
Query 1:
The query should return the latest measurement for each day and database. Like this:
*DateCol1       Value      Database*
27.09.2009        150          DB1
27.09.2009       1100          DB2
28.09.2009        220          DB1
28.09.2009       2000          DB2Query 2:
The query should return the average measurement for each day and database. Like this:
*DateCol1       Value      Database*
27.09.2009       125          DB1
27.09.2009      1050          DB2
28.09.2009       210          DB1
28.09.2009      1750          DB2Could someone please help me to write these two queries?
Please let me know if you need further information.
Edited by: user7066552 on Sep 29, 2009 10:17 AM
Edited by: user7066552 on Sep 29, 2009 10:17 AM

For first query you can use analytic function and solve it.
with t
as
select to_date('27.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss') dt,       100 val,           'DB1' db from dual union all
select to_date('27.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       150,           'DB1' from dual union all
select to_date('27.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss'),       1000,          'DB2' from dual union all
select to_date('27.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       1100,          'DB2' from dual union all
select to_date('28.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss'),       200,           'DB1' from dual union all
select to_date('28.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       220,           'DB1' from dual union all
select to_date('28.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss'),       1500,          'DB2' from dual union all
select to_date('28.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       2000,          'DB2' from dual
select dt, val, db
  from (
select row_number() over(partition by trunc(dt), db order by dt) rno,
       count(*) over(partition by trunc(dt), db) cnt,
       t.*
  from t)
where rno = cntFor second you can just group by
with t
as
select to_date('27.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss') dt,       100 val,           'DB1' db from dual union all
select to_date('27.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       150,           'DB1' from dual union all
select to_date('27.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss'),       1000,          'DB2' from dual union all
select to_date('27.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       1100,          'DB2' from dual union all
select to_date('28.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss'),       200,           'DB1' from dual union all
select to_date('28.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       220,           'DB1' from dual union all
select to_date('28.09.2009 12:00:00', 'dd.mm.yyyy hh24:mi:ss'),       1500,          'DB2' from dual union all
select to_date('28.09.2009 20:00:00', 'dd.mm.yyyy hh24:mi:ss'),       2000,          'DB2' from dual
select trunc(dt) dt, avg(val) val, db
  from t
group by trunc(dt), db
order by trunc(dt)

Similar Messages

  • SQL Selecting the first and last entries for each day

    Hello SQL experts,
    I hope you can help with this.. I have a table (could have 1M or more rows in it) see structure below. I am looking to get the first and last date/times for each employee for each day. I also need the location GUID for the first read.
    EmployeeGUID (uniqueidentifier datatype)
    LocationGUID (uniqueidentifier datatype)
    DateTime (DateTime datatype)
    12345678-0000-0000-0000-000000000000
    11111111-0000-0000-0000-000000000000
    04/12/2014 07:00:01
    12345678-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/12/2014 10:40:05
    12345678-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/12/2014 17:04:02
    44422222-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/14/2014 08:00:00
    44422222-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/14/2014 14:00:03
    44422222-0000-0000-0000-000000000000
    33333333-0000-0000-0000-000000000000
    04/15/2014 07:49:00
    44422222-0000-0000-0000-000000000000
    11111111-0000-0000-0000-000000000000
    04/15/2014 09:00:01
    This would be the ideal output (I can do without the TotalTimeInHours):
    EmployeeGUID (uniqueidentifier datatype)
    LocationGUID (uniqueidentifier datatype)
    FirstRead (DateTime datatype)
    LastRead (DateTime datatype)
    TotalTimeInHours
    12345678-0000-0000-0000-000000000000
    11111111-0000-0000-0000-000000000000
    04/12/2014 07:00:01
    04/12/2014 17:04:02
    Total in hours between the first and last read.
    44422222-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/14/2014 08:00:00
    04/14/2014 14:00:03
    44422222-0000-0000-0000-000000000000
    33333333-0000-0000-0000-000000000000
    04/15/2014 07:49:00
    04/15/2014 09:00:01
    I would post what I have tried so far but I have been trying many different types of queries over the last few days. In short I need the employees first and last reads for each date. They could have many entries per date or just 1. I am certain that this
    is a trivial thing for a SQL expert but not trivial for me :).
    Thank you in advance!

    Thank you!
    This is almost what I need. The LocationGUID has to be included in the output. When I include it, I have to put it in the Group By clause. When I do that the reads are based on the LocationGUID (see below).
    ** I added a few more data entries and included the LocationGUID in the output.
    ***** SQL ***********
    CREATE TABLE test(  EmployeeGUID  uniqueidentifier, LocationGUID  uniqueidentifier, DateTimeCol  DateTime )Insert into test values
    ('12345678-0000-0000-0000-000000000000','11111111-0000-0000-0000-000000000000','04/12/2014 07:00:01')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/12/2014 10:40:05')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/12/2014 17:04:02')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/12/2014 19:00:00')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/14/2014 08:00:00')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/14/2014 14:04:03')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/15/2014 07:49:00')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/15/2014 09:00:01')
    ,('12345678-0000-0000-0000-000000000000','11111111-0000-0000-0000-000000000000','04/13/2014 10:40:05')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/13/2014 17:04:02')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/13/2014 19:00:00')
    ;with mycte as (
    SELECT *, row_number() OVER(partition by EmployeeGUID, Cast(DateTimeCol as date)  Order by  DateTimeCol) rnASC,
     row_number() OVER (partition by EmployeeGUID, Cast(DateTimeCol as date)  Order by  DateTimeCol DESC) rnDESC
    FROM    test)
    Select EmployeeGUID ,Cast(DateTimeCol as date) dt,LocationGUID,
    Max(Case when rnASC=1 Then DateTimeCol End) minDateTimeCol
    ,Max(Case when rnDESC=1 Then DateTimeCol End ) maxDateTimeCol
    ,Datediff(minute, Max(Case when rnASC=1 Then DateTimeCol End) ,Max(Case when rnDESC=1 Then DateTimeCol End ) )/60.0  TotalTimeInHours
    from mycte
    Group by EmployeeGUID, LocationGUID,Cast(DateTimeCol as date)
    Order by dt,EmployeeGUID
    drop TABLE test
    **** OUTPUT **********
    EmployeeGUID
    dt
    LocationGUID
    minDateTimeCol
    maxDateTimeCol
    TotalTimeInHours
    12345678-0000-0000-0000-000000000000
    2014-04-12
    11111111-0000-0000-0000-000000000000
    2014-04-12 07:00:01.000
    NULL
    NULL
    12345678-0000-0000-0000-000000000000
    2014-04-12
    22222222-0000-0000-0000-000000000000
    NULL
    2014-04-12 19:00:00.000
    NULL
    12345678-0000-0000-0000-000000000000
    2014-04-13
    11111111-0000-0000-0000-000000000000
    2014-04-13 10:40:05.000
    NULL
    NULL
    12345678-0000-0000-0000-000000000000
    2014-04-13
    22222222-0000-0000-0000-000000000000
    NULL
    2014-04-13 19:00:00.000
    NULL
    44422222-0000-0000-0000-000000000000
    2014-04-14
    22222222-0000-0000-0000-000000000000
    2014-04-14 08:00:00.000
    2014-04-14 14:04:03.000
    6.066666

  • Selecting last value for a given date

    I've read some of the other threads on the this tope, but can't find a resolution.
    My query is supposed to get the last values for the given two days (start date and end date) and I return the difference between the two values. The query as it is only works for days where there is an entry for 12:00 pm. On some days, it will therefore return nothing. But I'm not sure how to get it to choose the last value for the given day and still remain a fast query.
    Here is a sample of the query with dates that return a result.
    SELECT max_query.sgnl_id as sgnl, max_query.max_val - min_query.min_val result_val
       FROM
      (SELECT t1.sgnl_id, t2.smpl_dte, t1.pv_id,
        MAX(t2.integ_since_val) AS max_val
         FROM diag.blm_acct t2, diag.pv_sgnl_id_assc t1
        WHERE t2.smpl_dte = TO_DATE ('11/15/2008 12:00:00 PM', 'MM-DD-YYYY HH:MI:SS AM')
        AND t1.pv_id = t2.pv_id
      AND t2.pv_id        IN
        (SELECT pv_id
           FROM diag.pv_sgnl_id_assc
          WHERE sgnl_id IN
          (SELECT sgnl_id
             FROM diag.series_sgnl_rec_asgn
            WHERE series_id = 'Series5'
    GROUP BY t1.sgnl_id, t2.smpl_dte, t1.pv_id
      ) max_query  ,
      (SELECT pv_id,
        MAX(integ_since_val) AS min_val
         FROM diag.blm_acct
        WHERE smpl_dte = TO_DATE ('11/10/2008 12:00:00 PM', 'MM-DD-YYYY HH:MI:SS AM')
      AND pv_id        IN
        (SELECT pv_id
           FROM diag.pv_sgnl_id_assc
          WHERE sgnl_id IN
          (SELECT sgnl_id
             FROM diag.series_sgnl_rec_asgn
            WHERE series_id = 'Series5'
    GROUP BY pv_id
      ) min_query WHERE max_query.pv_id  = min_query.pv_id
       ORDER BY max_query.sgnl_idThe data set in the table is quite large, but the above query returns only 49 results (one for each signal in 'Series5').
    I tried the following statement by itself to get the last value, but it takes quite a long time to execute (increased the overall query time from 1 sec to 400+ sec when used in the query above):
    SELECT DISTINCT trunc(smpl_dte) as the_day,
             first_value(integ_since_val) over (partition by trunc(smpl_dte) order by smpl_dte desc) as last_val_per_day
      FROM diag.blm_acct WHERE pv_id = 3 and trunc(smpl_dte) = to_date('05/18/2008', 'MM-DD-YYYY ')Any thoughts?

    Well here is an example of the output I'm trying to generate:
    SGNL                              RESULT_VAL
    CCL_Diag:BLM00:Slow60PulsesTotalLoss        52.843439255
    CCL_Diag:BLM101:Slow60PulsesTotalLoss        55.7883452511etc...
    Here is the table structure:
    describe diag.blm_acct;
    Name                           Null     Type                                                                                                                                                                                         
    BLM_ACCT_ID                    NOT NULL NUMBER(12)                                                                                                                                                                                   
    PV_ID                          NOT NULL NUMBER(38)                                                                                                                                                                                   
    SMPL_DTE                       NOT NULL DATE                                                                                                                                                                                         
    INTEG_OVER_VAL                          BINARY_DOUBLE()                                                                                                                                                                              
    INTEG_SINCE_VAL                         BINARY_DOUBLE()                                                                                                                                                                              
    INTEG_TYPE_ID                           NUMBER(3)     
    describe diag.PV_SGNL_ID_ASSC
    Name                           Null     Type                                                                                                                                                                                         
    PV_ID                          NOT NULL NUMBER(38)                                                                                                                                                                                   
    SGNL_ID                        NOT NULL VARCHAR2(75)   
    describe diag.SERIES_SGNL_REC_ASGN
    Name                           Null     Type                                                                                                                                                                                         
    SERIES_ID                      NOT NULL VARCHAR2(50)                                                                                                                                                                                 
    SGNL_ID                        NOT NULL VARCHAR2(75)                                                                                                                                                                                 
    DISP_ORD_NBR                            NUMBER                                                                                                                                                                              The main problem I'm having is how to replace this line of code:
    WHERE t2.smpl_dte = TO_DATE ('11/15/2008 12:00:00 PM', 'MM-DD-YYYY HH:MI:SS AM')with something that will get the last value (integ_since_val) in the diag.blm_acct table for the 11/15 date.
    Edited by: Solerous on Feb 18, 2009 11:32 AM - I figured out how to output the table data

  • Query to get a value for each day in a month

    Hi All,
    I'm needing a query (preferably without a loop or function) that can get a number representing each day of a given month.
    For example for the month of February, the result would be 1,2,3,....28
    Surely this can be done?
    Thanks!

    SQL> with a as (
      2  select trunc(sysdate,'Month') mon from dual)
      3  SELECT mon + LEVEL - 1 AS dates
      4  FROM a
      5  CONNECT BY LEVEL <= ADD_MONTHS (mon, 1)  - mon;
    DATES
    01-FEB-11
    02-FEB-11
    03-FEB-11
    04-FEB-11
    05-FEB-11
    06-FEB-11
    07-FEB-11
    08-FEB-11
    09-FEB-11
    10-FEB-11
    11-FEB-11
    DATES
    12-FEB-11
    13-FEB-11
    14-FEB-11
    15-FEB-11
    16-FEB-11
    17-FEB-11
    18-FEB-11
    19-FEB-11
    20-FEB-11
    21-FEB-11
    22-FEB-11
    DATES
    23-FEB-11
    24-FEB-11
    25-FEB-11
    26-FEB-11
    27-FEB-11
    28-FEB-11
    28 rows selected.or if u want it in one query,Then
    SQL> SELECT trunc(sysdate,'Month') + LEVEL - 1 AS dates
      2  FROM dual
      3  CONNECT BY LEVEL <= ADD_MONTHS (trunc(sysdate,'Month'), 1)  - trunc(sysdate,'Month');
    DATES
    01-FEB-11
    02-FEB-11
    03-FEB-11
    04-FEB-11
    05-FEB-11
    06-FEB-11
    07-FEB-11
    08-FEB-11
    09-FEB-11
    10-FEB-11
    11-FEB-11
    DATES
    12-FEB-11
    13-FEB-11
    14-FEB-11
    15-FEB-11
    16-FEB-11
    17-FEB-11
    18-FEB-11
    19-FEB-11
    20-FEB-11
    21-FEB-11
    22-FEB-11
    DATES
    23-FEB-11
    24-FEB-11
    25-FEB-11
    26-FEB-11
    27-FEB-11
    28-FEB-11
    28 rows selected.
    SQL> Regards
    Umesh

  • Select last occorence for each field of view where not there a timestamp

    I have a view TEST with the following field Field1 , Field2, Field3, ....
    Sample TEST
    Field1 .................Field2
    1 ...................... Rep7
    2 ...................... Rep5
    3 ...................... Rep4
    1 ...................... Rep1
    2 ...................... Rep3
    3 ...................... Rep6
    I want create a select that give the following result take a distinct field1 with the last occorence of field2
    For each field1 I want take the last field2
    sample of above the result is
    Field1..................Field2
    1 ...................... Rep1
    2 ...................... Rep3
    3 ...................... Rep6
    Edited by: user9011634 on 19-gen-2010 16.55

    Well, as i told you before, UNLESS the view has an order by statement in it you're out of luck.
    You will NOT get consistently ordered results UNLESS you have an order by statement.
    So you can try the code posted for you before, and it may work 90+ percent of the time, but i don't know many places where 90% consistency is good enough.
    *note, 90% is an arbitrary number, i can only tell you that it will not be 100% (and that's typically the required correctness rate any shop i've ever worked in).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Onblur get values for form field from table.

    Hello,
    I created one from with report for TableA.TableA has 5 column. Now after i enter first field ,on blur, i want 2 other fields should get populated.They should get the 2 values from TableB.Table A and Table B are connected through primary key foreigh key constraint.First field is primary key of TableA.
    How can i do this.I am writing a javascript function which i am calling from first form field.
    But in the function how to take values from the table for the other 2 fields.
    Can i just Select statements inside javascript function?
    Thanks
    Swapna.T

    Swapna,
    You can do this using AJAX. See link.
    Hope it helps
    Cheers,
    Hari

  • TSQL Get Previous values for each group by

    Dear Friends,
    I have a problem with my TSQL statment. 
    I need to get previous value for each day and specific unit. Everything goes fine if I have always 2 unit in each day. But if same day has just one unit or less, I cannot have the previous value in the current record.
    The Output is this one:
    SK_DAY SK_UNIT
    VALUE VALUE_PREVIUS_DAY
    20131112 2
    30.00 NULL
    20131112 3
    34.00 NULL
    20131113 2
    40.00 30.00
    20131113 3
    45.00 34.00
    20131114 2
    50.00 40.00
    I dont have the second record for 2013-11-14, because in this date I just have value for unit 2.
    The final output should include the record:
    20131114 3
    0 45.00
    The Statment I have is:
    SELECT MAIN.SK_DAY, MAIN.SK_UNIT, SUM(MAIN.VALUE) AS VALUE
     SELECT SUM(VND1.VALUE) AS VALUE
     FROM FCT_TEST VND1
     WHERE CONVERT(DATE,CONVERT(VARCHAR(10),VND1.SK_DAY))>=DATEADD(dd,-1,CONVERT(DATE,CONVERT(VARCHAR(10),MAIN.SK_DAY)))
    AND CONVERT(DATE,CONVERT(VARCHAR(10),VND1.SK_DAY))<CONVERT(DATE,CONVERT(VARCHAR(10),MAIN.SK_DAY))
    AND VND1.SK_UNIT=MAIN.SK_UNIT
    ) AS VALUE_PREVIUS_DAY
    FROM FCT_TEST MAIN
    GROUP BY SK_DAY, MAIN.SK_UNIT
    SQL CREATE SCRIPT:
    CREATE TABLE [dbo].[FCT_TEST](
    [SK_DAY] [int] NOT NULL,
    [SK_UNIT] [int] NOT NULL,
    [VALUE] [decimal](18, 2) NULL,
     CONSTRAINT [PK_FCT_TEST] PRIMARY KEY CLUSTERED 
    [SK_DAY] ASC,
    [SK_UNIT] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    Thank you!!!
    PPSQL

    Thank you Kalman,
    But my problem is not with date! Fortunately I have dates for all days.
    The problem is for dimension tables like UNITS that I dont have values for all days, and when I try to get the previous value for previous day and each unit I dont have records. 
    20131112
    2
     30.00
    NULL
    20131112
    3
     34.00
    NULL
    20131113
    2
     40.00
    30.00
    20131113
    3
     45.00
    34.00
    20131114
    2
     50.00
    40.00
    20131114
    3
     0
    45.00 [I NEED THIS RECORD AS IS]
    Could you help me??
    Thank you!!

  • Sql query - Selecting last recorded values for each date in specified period

    Hello,
    Can someone please help me with my problem.
    I'm trying to get last recorded balance for each day for specific box (1 or 2) in specified period of days from ms access database using ADOTool.
    I'm trying to get that information with SQL query but so far unsuccessfully...  
    My table looks like this:
    Table name: TestTable
    Date Time Location Box Balance
    20.10.2014. 06:00:00 1 1 345
    20.10.2014. 12:00:00 1 1 7356
    20.10.2014. 18:45:00 1 1 5678
    20.10.2014. 23:54:00 1 1 9845
    20.10.2014. 06:00:02 1 2 35
    20.10.2014. 12:00:04 1 2 756
    20.10.2014. 18:45:06 1 2 578
    20.10.2014. 23:54:10 1 2 845
    21.10.2014. 06:00:00 1 1 34
    21.10.2014. 12:05:03 1 1 5789
    21.10.2014. 15:00:34 1 1 1237
    21.10.2014. 06:00:00 1 2 374
    21.10.2014. 12:05:03 1 2 54789
    21.10.2014. 15:00:34 1 2 13237
    22.10.2014. 06:00:00 1 1 8562
    22.10.2014. 10:00:00 1 1 1234
    22.10.2014. 17:03:45 1 1 3415
    22.10.2014. 22:00:00 1 1 6742
    22.10.2014. 06:00:05 1 2 562
    22.10.2014. 10:00:16 1 2 123
    22.10.2014. 17:03:50 1 2 415
    22.10.2014. 22:00:10 1 2 642
    23.10.2014. 06:00:00 1 1 9876
    23.10.2014. 09:13:00 1 1 223
    23.10.2014. 13:50:17 1 1 7768
    23.10.2014. 19:47:40 1 1 3456
    23.10.2014. 21:30:00 1 1 789
    23.10.2014. 23:57:12 1 1 25
    23.10.2014. 06:00:07 1 2 976
    23.10.2014. 09:13:45 1 2 223
    23.10.2014. 13:50:40 1 2 78
    23.10.2014. 19:47:55 1 2 346
    23.10.2014. 21:30:03 1 2 89
    23.10.2014. 23:57:18 1 2 25
    24.10.2014. 06:00:55 1 1 346
    24.10.2014. 12:30:22 1 1 8329
    24.10.2014. 23:50:19 1 1 2225
    24.10.2014. 06:01:00 1 2 3546
    24.10.2014. 12:30:26 1 2 89
    24.10.2014. 23:51:10 1 2 25
    Let's say the period is 21.10.2014. - 23.10.2014. and I want to get last recorded balance for box 1. for each day. The result should look like this:
    Date Time Location Box Balance
    21.10.2014. 15:00:34 1 1 1237
    22.10.2014. 22:00:00 1 1 6742
    23.10.2014. 23:57:12 1 1 25
    So far I've managed to write a query that gives me balance for ONLY ONE date (date with highest time in whole table), but I need balance for EVERY date in specific period.
    My incorrect code (didn't manage to implement "BETWEEN" for dates...):
    SELECT TestTable.[Date], TestTable.[Time], TestTable.[Location], TestTable.[Box], TestTable.[Balance]
    FROM TestTable
    WHERE Time=(SELECT MAX(Time)
    FROM TestTable
    WHERE Location=1 AND Box=1 );
    Tnx!
    Solved!
    Go to Solution.

    For loop
    following query keep day (here 24 in below query) Variable from ( 1 to 28-29/30/31 as per month)
    SELECT TOP 1 TestTable.[Date], TestTable.[Time], TestTable.[Location], TestTable.[Box], TestTable.[Balance]
    FROM Test Table.
    WHERE  Time=(SELECT MAX(Time) FROM TestTable WHERE Location=1 AND Box=1 )
    AND DATE = "2014-10-24";
    PBP (CLAD)
    Labview 6.1 - 2014
    KUDOS ARE WELCOMED.
    If your problem get solved then mark as solution.

  • I need a query that selects the amount of records for each day in a table.

    I need a query that selects the amount of records for each
    day in a table.
    Eg the result would be:
    date 1 14
    date 2 3
    etc
    Any ideas?

    sorted:
    SELECT count([commentID]),convert(varchar, dateAdded, 112)
    FROM COMMENTSgroup by convert(varchar, dateAdded,
    112)

  • SQL help: return number of records for each day of last month.

    Hi: I have records in the database with a field in the table which contains the Unix epoch time for each record. Letz say the Table name is ED and the field utime contains the Unix epoch time.
    Is there a way to get a count of number of records for each day of the last one month? Essentially I want a query which returns a list of count (number of records for each day) with the utime field containing the Unix epoch time. If a particular day does not have any records I want the query to return 0 for that day. I have no clue where to start. Would I need another table which has the list of days?
    Thanks
    Ray

    Peter: thanks. That helps but not completely.
    When I run the query to include only records for July using a statement such as following
    ============
    SELECT /*+ FIRST_ROWS */ COUNT(ED.UTIMESTAMP), TO_CHAR((TO_DATE('01/01/1970','MM/DD/YYYY') + (ED.UTIMESTAMP/86400)), 'MM/DD') AS DATA
    FROM EVENT_DATA ED
    WHERE AGENT_ID = 160
    AND (TO_CHAR((TO_DATE('01/01/1970','MM/DD/YYYY')+(ED.UTIMESTAMP/86400)), 'MM/YYYY') = TO_CHAR(SYSDATE-15, 'MM/YYYY'))
    GROUP BY TO_CHAR((TO_DATE('01/01/1970','MM/DD/YYYY') + (ED.UTIMESTAMP/86400)), 'MM/DD')
    ORDER BY TO_CHAR((TO_DATE('01/01/1970','MM/DD/YYYY') + (ED.UTIMESTAMP/86400)), 'MM/DD');
    =============
    I get the following
    COUNT(ED.UTIMESTAMP) DATA
    1 07/20
    1 07/21
    1 07/24
    2 07/25
    2 07/27
    2 07/28
    2 07/29
    1 07/30
    2 07/31
    Some dates donot have any records and so no output. Is there a way to show the missing dates with a COUNT value = 0?
    Thanks
    Ray

  • SAP has a table that maintains Stock on Hand for each day

    SAP has a table that maintains Stock on Hand for each day
      do u know which table is that
    as i need to find data on stock on hand

    HI Arunraj
    if there is any specific time of the day that you want to extract the data, you can copy the data from the order series key figure  (assuming that you want to extract the data from the order series keyfigure) to a time series key figure and extract the data from the time series key figure into a cube, etc.
    I mention a specific time of the day because the stock situation is likely to change multiple times of the day due to stock movements on account of various reasons. Hence if you can establish a rule or a cut-off time of the stock situation, you can use the above route.
    Hope this helps.
    Thanks, Sandeep

  • Using pl/sql function for each day between two dates.

    Hi,
    create TABLE EMP(
    ID_EMP NUMBER,
    DT_FROM DATE,
    DT_TO DATE,
    CREATE_DATE DATE);
    into EMP(ID_EMP, DT_FROM, DT_TO, CREATE_DATE)
    Values(100, TO_DATE('07/01/2008 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('04/30/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),TO_DATE('05/08/2009 14:11:21', 'MM/DD/YYYY HH24:MI:SS'));
    I have a function called  elig_pay_dates(date p_date), which returns the code for  person payment eligibility for a particular date. For paid dates it's 'P' and for unpaid dates it's 'N'.
    How can I check this function between two dates for each day. Example : 07/01/2008 to 04/30/2010.
    By using this function with select I needs to display the dates when there is a change in status.
    I am expecting data in following manner from above logic(this is example):
    07/01/2008 --- 07/01/2009 ---'P'
    07/02/2009 -- 07/25/2009 ----'N'
    07/26/2009 -- 01/01/2010 ---'P'
    01/02/2010 -- 01/13/2010 --'N'
    01/14/2010 -- 01/18/2010 --'P'
    01/19/2010 -- 04/30/2010 -- 'N'
    I thought of looping for each day date but that seems to be expensive for online application. Is there any way that I can achieve this requirement with sql query ?
    Thanks for your help,

    Certainly not the best way to code the requirement, but it does achieve the result you are looking for in a fairly quick time
    create or replace
    function test_ret_paid_unpaid (p_date in date)
    return varchar2
    is
      v_ret     varchar2(1);
    begin
      if ( (p_date between to_date('07/02/2009', 'MM/DD/YYYY') and to_date('07/25/2009', 'MM/DD/YYYY') ) or
           (p_date between to_date('01/02/2010', 'MM/DD/YYYY') and to_date('01/13/2010', 'MM/DD/YYYY') ) or
           (p_date between to_date('01/19/2010', 'MM/DD/YYYY') and to_date('04/30/2010', 'MM/DD/YYYY') )
        then v_ret := 'N';
      else
        v_ret := 'Y';
      end if;
      return v_ret;
    end;
    Wrote file afiedt.buf
      1  with get_paid_unpaid as
      2  (
      3    select dt_from start_date, dt_to end_date, dt_from + level - 1 curr_date, test_ret_paid_unpaid(dt_from + level - 1) paid_unpaid,
      4           row_number() over (order by dt_from + level - 1) rn_start,
      5           row_number() over (order by dt_from + level - 1 desc) rn_end
      6      from test_emp
      7    connect by level <= dt_to - dt_from + 1
      8  ),
      9  get_stop_date as
    10  (
    11  select start_date init_date, end_date, curr_date, paid_unpaid,
    12         case when paid_unpaid != lag(paid_unpaid) over (order by curr_date) or rn_start = 1 or rn_end = 1
    13          then curr_date
    14          else null
    15         end start_date,
    16         case when paid_unpaid != lead(paid_unpaid) over (order by curr_date) or rn_start = 1 or rn_end = 1
    17          then curr_date
    18          else null
    19         end stop_date
    20    from get_paid_unpaid
    21  )
    22  select period, paid_unpaid
    23    from (
    24  select init_date, curr_date, start_date, end_date, stop_date,
    25         case when paid_unpaid = lead(paid_unpaid) over (order by curr_date)
    26                then nvl(start_date, init_date) || ' - ' || lead(stop_date, 1, end_date) over (order by curr_date)
    27              else null
    28         end period,
    29         paid_unpaid
    30    from get_stop_date
    31   where stop_date is not null or start_date is not null
    32         )
    33*  where period is not null
    12:06:10 SQL> /
    PERIOD                                             PAID_UNPAID
    01-JUL-08 - 01-JUL-09                              Y
    02-JUL-09 - 25-JUL-09                              N
    26-JUL-09 - 01-JAN-10                              Y
    02-JAN-10 - 13-JAN-10                              N
    14-JAN-10 - 18-JAN-10                              Y
    19-JAN-10 - 30-APR-10                              N
    6 rows selected.
    Elapsed: 00:00:00.35

  • Count for each day

    Hi
    I have a query ,it gives total count of month
    select count(*) from w_srvreq_d where status='Closed' and trunc(close_dt)>'01-may-2003' AND trunc(close_dt)<='31-may-2003'
    COUNT(*)
    82
    I want count for each day
    ex
    date count
    1/5/03 1
    2/5/03 2
    31/5/03 12
    Regards
    Mohan

    Hi
    select count(*) from w_srvreq_d where status='Closed' and trunc(close_dt)>'01-may-2003' AND trunc(close_dt)<='31-may-2003'
    COUNT(*)
    82
    My scnerio is want to join w_day_d and w_srvreq_d dimension and populate in to fact table .This below query populate the data in bt_fault_snapshot_f table,But i want count for each day
    date count sr_cat_type_cd x_bt_current_queue
    1/5/03 1 complaint unspecifie
    2/5/03 2 Fault unspecified
    SELECT dlr.sr_cat_type_cd,
    dlr.x_bt_current_queue,dlr.x_bt_line_of_business ,
    day.snapshot_date AS snapshot_date FROM
    ( SELECT w_day_d.day_dt AS snapshot_date
    FROM (SELECT to_date(nvl(max(date_wid),'20030531'),'yyyymmdd')+1
    AS snapshot_date
         FROM bt_fault_snapshot_f) f ,
         w_day_d , (SELECT CASE WHEN to_number(to_char(sysdate,'hh24')) <18 THEN trunc(sysdate - 1)
                        ELSE trunc(sysdate)
                                       END AS lastdate FROM dual) currdate
                                            WHERE w_day_d.day_dt >= f.snapshot_date
                                            AND w_day_d.day_dt <= currdate.lastdate) day
                                                 , ( SELECT DISTINCT sr_cat_type_cd,x_bt_current_queue,x_bt_line_of_business
                                                      FROM w_srvreq_d) dlr
    Regards
    Mrao

  • How to select XML value for a namespace when multiple namespaces

    Hi,
    I'm a beginner with this, but I'm doing well with your help from this forum in a recent post selecting out all the detail from my xml
    out into my oracle relational tables. Stumped, though, on how to select a value for xml tag value referenced by a defined namespace.
    Version, XML, what I want to select, and attempted sql is below. Thanks in advance!
    select * from V$VERSION
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    PL/SQL Release 11.2.0.2.0 - Production
    CORE 11.2.0.2.0 Production
    TNS for Solaris: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    drop table TRANSCRIPT;
    create table TRANSCRIPT (
    CONTENT xmltype
    <?xml version="1.0" encoding="UTF-8"?>
    <arb:AcademicRecordBatch xmlns:arb="urn:org:pesc:message:AcademicRecordBatch:v1.0.0">
      <hst:HighSchoolTranscript xmlns:hst="urn:org:pesc:message:HighSchoolTranscript:v1.0.0" xmlns:ct="http://ct.transcriptcenter.com">
       <TransmissionData>
          <DocumentID>2013-01-02T09:06:15|D123456789</DocumentID>
       </TransmissionData>
       <Student>
                <Person>
                    <Name>
                        <FirstName>John</FirstName>
                        <LastName>Doe</LastName>                   
                    </Name>
                </Person>
                <AcademicRecord> 
                    <AcademicSession>
                        <Course>
                            <CourseTitle>KEYBOARD 101</CourseTitle>
                            <UserDefinedExtensions>
                              <ct:TranscriptExtensions>
                                 <NCESCode>01001E010456</NCESCode>
                                 <CourseRigor>1</CourseRigor>
                              </ct:TranscriptExtensions>
                          </UserDefinedExtensions>
                        </Course>
                        <Course>
                            <CourseTitle>SCIENCE 101</CourseTitle>
                            <UserDefinedExtensions>
                              <ct:TranscriptExtensions>
                                 <NCESCode>01001E010457</NCESCode>
                                 <CourseRigor>2</CourseRigor>
                              </ct:TranscriptExtensions>
                          </UserDefinedExtensions>                       
                        </Course>
                    </AcademicSession>
                    <AcademicSession>
                        <Course>
                            <CourseTitle>MATH 201</CourseTitle>
                            <UserDefinedExtensions>
                              <ct:TranscriptExtensions>
                                 <NCESCode>01001E010458</NCESCode>
                                 <CourseRigor>2</CourseRigor>
                              </ct:TranscriptExtensions>
                          </UserDefinedExtensions>                                 
                        </Course>
                    </AcademicSession>
             </AcademicRecord>
       </Student>
      </hst:HighSchoolTranscript>
    </arb:AcademicRecordBatch>I want to be able to select the NESCODE associated to each coursetitle (01001E010456, 01001E010457, 01001E010458), with NESCode defined by namespace, but getting out NULL.
    DOCUMENTID     LASTNAME     COURSETITLE     NCESCODE
    2013-01-02T09:06:15|D123456789     Doe     KEYBOARD 101     
    2013-01-02T09:06:15|D123456789     Doe     SCIENCE 101     
    2013-01-02T09:06:15|D123456789     Doe     MATH 201     
    My SQL is below. You'll see where I commented out a couple failed alternatives too. Thanks again in advance for any guidance.
       select x0.DocumentID
             ,x1.LastName
             , x3.CourseTitle
             ,x3.NCESCode
      from TRANSCRIPT t
         , xmltable(                                                                                   
             xmlnamespaces(
               'urn:org:pesc:message:AcademicRecordBatch:v1.0.0' as "ns0"
             , 'urn:org:pesc:message:HighSchoolTranscript:v1.0.0' as "ns1"
            --, 'http://ct.transcriptcenter.com'                               as "ns1b" 
          , '/ns0:AcademicRecordBatch/ns1:HighSchoolTranscript' 
            passing t.content
            columns DocumentID       varchar2(40) path 'TransmissionData/DocumentID'
                       , Student xmltype      path 'Student'     
          ) x0
       , xmltable(
            '/Student'
            passing x0.Student
            columns LastName varchar2(20) path 'Person/Name/LastName'                       
                        ,AcademicRecord   xmltype      path 'AcademicRecord' 
          ) x1          
       , xmltable(
            '/AcademicRecord/AcademicSession' 
            passing x1.AcademicRecord
            columns GradeLevel varchar2(20) path 'StudentLevel/StudentLevelCode'
                  , Courses      xmltype      path 'Course'
          ) x2
              , xmltable(
              xmlnamespaces('http://ct.transcriptcenter.com'  as "ns2b")
              , '/Course'
            passing x2.Courses
            columns CourseTitle varchar2(40) path 'CourseTitle'
                         ,NCESCode  varchar2(20) path 'UserDefinedExtensions/ns2b:ct/NCESCode'
                         --,NCESCode  varchar2(20) path 'UserDefinedExtensions/ns2b:ct/TranscriptExtensions/NCESCode'                     
          ) x3
               

    <<I'm assuming there is more to your XML than you showed, since
    StudentLevel/StudentLevelCode
    is not in the XML, but is in your query. >>
    Yes, to simplify, I left out some of the additional XML data, which is typically present, sorry for any confusion. I should have removed those references to that data in my example which was failing to retrieve the NCESCode data which was denoted by that namespace.
    Thank you very much! Your correction worked. I was not understanding until your correction how to properly reference in the XPATH for that namespace value. I'm a newbie at this, and this is my second post. But I've been able to populate quite a few relational tables and that was the first of several namespace tags I will have to deal with next, and with that help, I should be good with that syntax now.
    Thanks again for your help on this.

  • SSIS-How to pass multiple value to stored procedure from table row one by one using ssis package??

    I want to execute a stored procedure using ssis.But the problem  I am having is that there is a table with 200 rows with only
    single column.Now i want to execute stored procedure using value one by one from table .once the stored procedure is executed with top value from table i also want to delete that topmost column value and execute with next table value.and store the result in
    text file.
    please help me..or provide a package.

    If you want to do it in SSIS, a way to do this is by using For Each Loop as mentioned above.
    Create 1 OBJECT type variable (list of values) and one STRING type variable (one value at a time)
    Use EXE SQL Task with ResultSet = FULL RESULT SET and query = SELECT COL FROM TABLE ORDER BY COL ASC...output this to the OBJECT type variable 
    Next, a For Each loop container with Foreach ADO Enumerator, ADO object source variable = Object type variable and map that to String type variable with index = 0.
    Within your for each loop container, select another EXEC SQL Task and pass in an input parameter (the String type variable) and query = EXEC PROC ? -- WHERE ? = String type variable.
    This will execute your store procedure just for that one value out of the whole list.
    Now within the same For Each loop, select another EXEC SQL Task and again pass in an input parameter (the same String type variable) and query = DELETE FROM TABLE WHERE COL = ? -- WHERE ? = the current value 
    The above process should A) get the list of values from the table B) pick one value at a time and execute the proc and delete and right after delete that value from the table.
    Hope this helps.
    -- some further investigation/tweaking may require but it should help you get started.

Maybe you are looking for

  • I am a new learner i am getting an error while running a sample welcome pag

    hi , i am able to crate a package and also a page but when i run that page i am getting the follow error messages, i am using jdeveloper version 10.1.3.3.0.3 and also please help me how to create a business component package in this version. Validati

  • ERROR MESSAGE 401 - ITUNES COULD NOT CONNECT TO MUSIC STORE

    I've rencently tried to download some tunes from the Music store but keep getting this error message: "ITUNES COULD NOT CONNECT TO THE MUSIC STORE - AN UNKNOWN ERROR OCCURED (401)" "MAKE SURE YOUR NETWORK CONNECTION IS ACTIVE & TRY AGAIN" This messag

  • Problem clearing Vendor items through F-44

    Hi Experts, While I am trying to clear the vendor open items ( via transaction code F-44) I get the error message which says "The entry EN 3  is missing in table 021T", with message # F5100. I tried to look up the Table 021T. It then prompts the erro

  • Setup could not detect any SB Audio Card on your system..... (win XP and SB02

    What do I need to do? I run it under Win XP, have installed the XP drivers but when Im trying to run the Installing Program from the original CD I get the above message... Creative model SB 0220 Anyone has any suggestion? Thanks

  • Tiger 10.4.3 and Onyx

    Has anyone been able to use the latest release of Onyx since updating to 10.4.3? I keep getting a message "Applescript error 1762" and have to force quit Onyx to exit. I did run permissions repair etc. Otherwise, everything else seems normal.