Help with writing body_checks rules

I was wondering if anyone knew of a good source to refer to for writing body_check rules for Postfix. I am having an issue with a few rules that I have written to block spam, but I am blocking legitimate mail as well - the legitamate mail does not seem to meet the rule's criteria.
Here is an example of my rule:
/NMXC/ REJECT Spam Rule Number 88
I want to block the word or stock id "NMXC" but it is blocking emails that do not contain "NMXC".
Any help would be appreciated.
Thanks,
Tony

I am sure that it is the rule that is being triggered. I list my rule responses as "Spam Rule" and then a line number so that I can keep up with which rules are causing the rejection.
I have disabled most of my Spam Rules for body_checks because I was getting so many false positives.
Jan 15 04:10:10 Macintosh postfix/cleanup[19746]: B5CB910512D3: reject: body HZeppHyAgMCRMAW3A7j/AFYaKEC9RlCAMW6gAh2YgNw0gCsoQCByACDAwQAQAQqwAASwSlcSSjMB from 125.red-213-96-130.staticip.rima-tde.net[213.96.130.125]; from=<[email protected]> to=<[email protected]> proto=SMTP helo=<125.Red-213-96-130.staticIP.rima-tde.net>: Spam Rule Number 85
I don't know if this is true junk or not. The log is so old. I had several people who had legitimate mail rejected and when I asked their sender to let me know if it contain the phrase or word that was rejected by Spam Rule Number 85 the response was always no.
Perhaps I need to place a space between my slashes...would that help? In other words make the filter look like this:
/ wordtoreject / Spam Rule Number 85.
By the way, thanks for responding.

Similar Messages

  • Need help with writing a rule

    Need help with some rules. I want to book a number to a specific Entity at a Specific Custom 4 only. I don't want this formula to work at all C4 levels. How can this be done?
    for example if Entity is "XBM1123" and we use C4 for tracking and the tracking level I want to book it to is IMPORT, how can this be done for a specific account 4400221
    I have my formula as
    If pov_value = "<Entity Currency>" or pov_value = "<Entity Curr Adjs>" Then
    If HS.Entity.Member = "XBM1123" or HS.Custom4.Member = "IMPORT" then
    HS.EXP "A#4400221= A#4521111 + A#3526644 + A#635210"
    End If
    End if
    this did not work. I got hte following error
    Calculate started.<BR>Error executing VBScript Microsoft VBScript runtime
    error, Line 259:Object doesn't support this property or method:
    'HS.Custom4.Member'.<BR>Calculate finished.<BR>Error executing
    VBScript %0.
    I then changed it to the below and it still did not work
    If pov_value = "<Entity Currency>" or pov_value = "<Entity Curr Adjs>" Then
    If HS.Entity.Member = "XBM1123" then
    HS.EXP "A#4400221.C4#IMPORT= A#4521111 + A#3526644 + A#635210"
    End If
    End if
    error
    Invalid Custom1 member
    specified for this function.
    Invalid Destination specified for this function:
    A#4400221.C4#IMPORT.

    You are close.
    Try:
    If pov_value = "<Entity Currency>" or pov_value = "<Entity Curr Adjs>" Then
        If HS.Entity.Member = "XBM1123" then
           HS.EXP "A#4400221.C4#IMPORT= A#4521111.C4#IMPORT + A#3526644.C4#IMPORT + A#635210.C4#IMPORT"
        End If
    End if
    or replace IMPORT with with Top_C4 or what ever member you need to copy to C4#IMPORT.
    Rule of thumb, to be on the safe side and for most simple calcs, is if you mention a dimension on the left side, you need to define it on the right side as well.

  • Help with writing and retrieving data from a table field with type "LCHR"

    Hi Experts,
    I need help with writing and reading data from a database table field which has a type of "LCHR". I have given an example of the original code but don't know what to change it to in order to fix it and still read in the original data that's stored in the LCHR field.
    Basically we have two Function modules, one that saves list data to a database table and one that reads in this data. Both Function modules have an identicle table which has an array of fields from type INT4, CHAR, and type P. The INT4 field is the first one.
    Incidentally this worked in the 4.7 non-unicode system but is now dumping in the new ECC6 Unicode system.
    Thanks in advance,
    C
    SAVING THE LIST DATA TO DB
    DATA: L_WA(800).
    LOOP AT T_TAB into L_WA.
    ZDBTAB-DATALEN = STRLEN( L_WA ).
    MOVE: L_WA to ZDBTAB-RAWDATA.
    ZDBTAB-LINENUM = SY-TABIX.
    INSERT ZDBTAB.
    READING THE DATA FROM DB
    DATA: BEGIN OF T_DATA,
                 SEQNR type ZDBTAB-LINENUM,
                 DATA type ZDBTAB-RAWDATA,
               END OF T_TAB.
    Select the data.
    SELECT linenum rawdata from ZDBTAB into table T_DATA
         WHERE repid = w_repname
         AND rundate = w_rundate
         ORDER BY linenum.
    Populate calling Internal Table.
    LOOP AT T-DATA.
    APPEND T_DATA to T_TAB.
    ENDLOOP.

    Hi Anuj,
    The unicode flag is active.
    When I run our report and then to try and save the list data a dump is happening at the following point
    LOOP AT T_TAB into L_WA.
    As I say, T_TAB consists of different fields and field types whereas L_WA is CHAR 800. The dump mentions UC_OBJECTS_NOT_CONVERTIBLE
    When I try to load a saved list the dump is happening at the following point
    APPEND T_DATA-RAWDATA to T_TAB.
    T_DATA-RAWDATA is type LCHR and T_TAB consists of different fields and field types.
    In both examples the dumps mention UC_OBJECTS_NOT_CONVERTIBLE
    Regards
    C

  • Help with writing a formula

    Hi all,
    I am creating a report, and need help with writing a formula...
    I am creating a report that shows how many visits/touches our reps have made to various grade accounts. It is broken down by calendar week, and I currently have a weekly "goal" number set that the reps have to meet. That "goal" number increases each week to keep a running total. (example: week 1: 7, week 2: 14, week 3: 21)
    I have created some different formulas and one is this:
    SUM("Activity Metrics"."# of Activities" BY Date."Calendar Week")
    What this shows me is how many "visits" there are per calendar week to customers, however it show me the total for all reps per week.
    What I need is that total to show, but totaled for each rep individually.
    What I was trying is this:
    SUM("Activity Metrics"."# of Activities" BY Date."Calendar Week") BY Employee."Employee Name"
    But...I keep getting an error.
    Any suggestions?
    I have the reporting book by Lairson, and have been referring to it...but my brain at this point is fried.
    Thanks in advance for any help...(please forgive...I am new to OnDemand, and I am sure this is easy)

    Thanks for helping!
    I created this formula as a column: SUM ("Activity Metrics"."# of Activities" BY Date."Calendar Week"), it is called "total number of visits per week" and it shows the totaled number of visits that all the reps have done per calendar week. For example: Week 1: 10 visits, Week 2: 37 visits, Week 3: 20 visits.
    What I would like to do is take that column and break it down further, to show instead how many visits per week by sales rep there have been
    So what I was trying was to take the "total number of visits per week" (SUM ("Activity Metrics"."# of Activities" BY Date."Calendar Week")) and use "Activity Owner" (Employee."Employee Name") to break it down further.
    What I need to use is the total number of visits each rep has per calendar week.
    I think I am getting the error because you can't use "BY" twice in a formula?

  • Help with writing .bashrc file

    I would like help with writing a .bashrc file.
    The only thing I want right now is colored output and slashes for directories like what "ls -GF" does -- for each new terminal window.
    Can you guys give me a hand?
    Running Mac OS 10.4.6. Bash is default shell.
    Thanks.

    Hi Paul,
       You can get Apple's "ls" command to always output color with the following in your .bashrc:
    export CLICOLOR=""
    You can have an effect on the colors used with settings like the following:
    export LSCOLORS="gxfxcxdxbxegedabafacad"
       I have a color prompt in my bash startup scripts, bashrc.tgz. If you unpack the tarball in the root of your home directory, the files will be put in a ~/Library/init/bash directory. The file named "prompt" sets the color prompt string.
    Gary
    ~~~~
       I know you think you thought you knew what you
       thought I said, but I'm not sure you understood what
       you thought I meant.

  • Please help with writing a class

    i need help getting started with this assignment. i haven't done anything with writing classes, so i don't know where to start.
    i need to create a bank account class that will keep a name, balance, up to 50 deposits, and up to 50 withdrawls. i need to include 2 arrays for the deposits and withdrawls.
    Here's what i know:
    I need a constructor that takes zero arguments. This constructor would initialize the numeric value to zero.
    I need a 2nd constructor that takes one argument, a name as a String value. This constructor would initialize the numeric value to zero.
    I need a 3rd constructor that takes two arguments, a name as a String value and a starting "balance" as a double value

    Sorry, I was watching a movie with my wife ...imagine that. Study my examples here and try to understand what I have done. You will follow the same methodology for the rest of the program. Use main to test the methods in your program.
    public class mdlAccount {
      String name;
      double balance;
      int currentDeposit = 0;
      int currentWithdrawl = 0;
      double[] deposits = new double[50];
      double[] withdrawals = new double[50];
      public mdlAccount() {
        name = "";
        balance = 0.0;
      public mdlAccount(String name) {
        this.name = name;
        balance = 0.0;
      public mdlAccount(String name, double balance) {
        this.name = name;
        this.balance = balance;
      // When the instructor says: Have a method that does deposits...
      // You need to create a method, similar to the constructors,
      // but with a return value, even if it returns void (nothing).
      // Like this:
      public void deposit( double amount ) {
        // Do some error checking.
        if ( currentDeposit < 50 && amount > 0 ) { // > is a greater than sign
          // If all is ok, add to the balance...
          balance += amount;
          // and add the entry to the array of deposits
          deposits[currentDeposit] = amount;
          // Finally, add 1 to the currentDeposit variable.
          currentDeposit++;
      // We need the 'return the balance' method so we can see if
      // the program runs correctly. This time we return a double,
      // instead of void. (void means don't return anything at all).
      public double getBalance() {
        return balance;
    // Now you create the next method for withdrawals...
    //  if ( currentWithdrawl < 50 ) {
    //    deposits[currentWithdrawl] = amount;
    //    currentWithdrawl++;
      // You want a main method so this class can be executed.
      // You can remove it later if you want to use this class
      // from within another larger program.
      public static void main(String[] args) {
        mdlAccount acct = new mdlAccount( "GumB", 100.0 );
        System.out.println("Initial balance is " + acct.getBalance());
        acct.deposit( 50.0 );
        System.out.println("Current balance is " + acct.getBalance());

  • Help with writing a batch file

    Hi :
    does anyone know anyplace online that I can get help in writing batch files?? I have never worked much with batch files before....
    any help is greatly appreciated
    thnx

    I suppose, since you're in a Java forum, you need batch files to load java applications.
    If you use windows :
    go to ms console (start/run/"cmd")
    type edit mybatch.bat
    write your command to load a java application, something like
    java myclass.class
    save and exit.
    Be sure the bat file and the class are in the same folder.
    And make certain you've set the classpath, and path variables correctly.
    If this was what you needed and you need more help just ask.
    (In this case it could be better to make executable jars)
    If you wanted to know about linux batches, it works pretty the same way.

  • Help with writing, reading a file...

    I'm writing a program that writes a number to a file and then reads it again each time it is loaded. It's like a counter, the number starts out being 0, then when the program is run again the number will be two, and so on and so on. I've never been good with writing incrementer type things and files, so could you help me out? Remember, the program writes a single number to the file, and then adds one to that number each time the program is run, so it starts at zero and goes up by one each time it is run.
    -Thanks... I just came back from vacation and my Java skills are somewhat lacking :P

    open old file -> get the number -> create a new file -> write new number

  • Need help with writing a query with dynamic FROM clause

    Hi Folks,
    I need help with an query that should generate the "FROM" clause dynamically.
    My main query is as follows
    select DT_SKEY, count(*)
    from *???*
    where DT_SKEY between 20110601 and 20110719
    group by DT_SKEY
    having count(*) = 0
    order by 1; The "from" clause of the above query should be generated as below
    select 'Schema_Name'||'.'||TABLE_NAME
    from dba_tables
    where OWNER = 'Schema_Name'Simply sticking the later query in the first query does not work.
    Any pointers will be appreciated.
    Thanks
    rogers42

    Hi,
    rogers42 wrote:
    Hi Folks,
    I need help with an query that should generate the "FROM" clause dynamically.
    My main query is as follows
    select DT_SKEY, count(*)
    from *???*
    where DT_SKEY between 20110601 and 20110719
    group by DT_SKEY
    having count(*) = 0
    order by 1; The "from" clause of the above query should be generated as below
    select 'Schema_Name'||'.'||TABLE_NAME
    from dba_tables
    where OWNER = 'Schema_Name'
    Remember that anything inside quotes is case-sensitive. Is the owner really "Schema_Name" with a capital S and a capital N, and 8 lower-case letters?
    Simply sticking the later query in the first query does not work.Right; the table name must be given when you compile the query. It's not an expression that you can generate in the query itself.
    Any pointers will be appreciated.In SQL*Plus, you can do something like the query bleow.
    Say you want to count the rows in scott.emp, but you're not certain that the name is emp; it could be emp_2011 or emp_august, or anything else that starts with e. (And the name could change every day, so you can't just look it up now and hard-code it in a query that you want to run in the future.)
    Typically, how dynamic SQL works is that some code (such as a preliminary query) gets some of the information you need to write the query first, and you use that information in a SQL statement that is compiled and run after that. For example:
    -- Preliminary Query:
    COLUMN     my_table_name_col     NEW_VALUE my_table_name
    SELECT     table_name     AS my_table_name_col
    FROM     all_tables
    WHERE     owner          = 'SCOTT'
    AND     table_name     LIKE 'E%';
    -- Main Query:
    SELECT     COUNT (*)     AS cnt
    FROM     scott.&my_table_name
    ;This assumes that the preliminary query will find exactly one row; that is, it assumes that SCOTT has exactly one table whose name starts with E. Could you have 0 tables in the schema, or more than 1? If so, what results would you want? Give a concrete example, preferably suing commonly available tables (like those in the SCOTT schema) so that the poepl who want to help you can re-create the problem and test their ideas.
    Edited by: Frank Kulash on Aug 11, 2011 2:30 PM

  • Help with an Update rule

    Hello,
    I'm trying to write an update rule to transfer some data from one cube to another. I'll try to explain as much as i can :).
    I have an info object FACID (contains the facility ID for XYZ facilities), which has various attributes including one called ZR profit center (ZRPC). This is in both cubes.
    1. I need to only transfer records from cube 1 to cube 2 where the ZRPC has a value.
    2. I need to convert the FACID record to ZRPC record.
    3. I also need to import a Statistical Key Figure (SKF) for those concerned records.
    Cube one:
    FACID         ZRPC       SKF
    1000            4000         PD1
    1234            4456         PD2
    5678            5688         PD3
    4562                            PD4
    3457                            PD5
    2467            4566         PD6
    Cube two:
    FACID        SKF
    4000          PD1
    4456          PD2
    5688          PD3
    4566          PD6
    I hope that makes sense. I need help in the the ABAP program, since I don't have the requisite knowledge to write a complicated program.
    Sam
    PS: Ok, Ok... Who am I kidding.I don't have the knowledge to write even a simple ABAP program. :):)

    Hi,
    [code]
    PROGRAM UPDATE_ROUTINE.
    $$ begin of global - insert your declaration only below this line -
    TABLES: ...             " << This u can define in the TOP include
    Global table. referred to in update routines.
    DATA: ...
    $$ end of global - insert your declaration only before this line -
    FORM compute_data_field
    TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
    USING COMM_STRUCTURE LIKE /BIC/CSDB_VW_KHAT_SHIFT_HOURS
    RECORD_NO LIKE SY-TABIX
    RECORD_ALL LIKE SY-TABIX
    SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
    CHANGING RESULT LIKE /BIC/AHCA_O00500-PROFIT_CTR
    RETURNCODE LIKE SY-SUBRC "Do not use!
    ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
    $$ begin of routine - insert your code only below this line -
    fill the internal table "MONITOR", to make monitor entries
    select * from CI_C001 into table i_CI_C001 where zrpc ne space.
    select * from RI_C001 into table i_RI_C001 for all entries in i_CI_C001
    where ZFACID eq i_CI_C001-zrpc.
    loop at i_CI_001.
    read table i_RI_C001 with key ZFACID = i_CI_C001-zrpc.
    if sy-subrc eq 0.
    update RI_C001 set skf = i_CI_C001-skf.
    endif.
    endloop.
    commit work.
    if sy-subrc ne 0                           " <<  Inserted this code
      rollback.                                   " <<           "
    endif                                           " <<           "
    if abort is not equal zero, the update process will be canceled
    ABORT = 0.
    $$ end of routine - insert your code only before this line -
    ENDFORM.
    [/code]
    aRs

  • Help With Writing A Vector To A File

    hi
    i am having trouble writing a vector to a file
    Here is my code
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import javax.swing.filechooser.*;
    public class Save
         JFileChooser fc = new JFileChooser();
         public Save(JFrame par, mainCollection col)
         try
         ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream fc.getSelectedFile().getName()));
         out.writeObject(col.carCollection);
         for(int i = 0; i< col.carCollection.size();i++)
         Cars cd = (Cars)col.carCollection.elementAt(i);
         Vector v = cd.getModels();
         out.writeObject(v);
         }catch(FileNotFoundException e){System.out.println("not found");}
         catch(IOException e){System.out.println("IO" + e.getMessage());}
    Ok now the mainCollection col is from my other class mainCollection which has my main vector in it. This main vector contains car types which contain car models i.e. Ford which contains Falcon. What i need to do is copy the whole contents of vector over in one go to the file.
    With the code above i am getting IO Exception errors
    here is the errors
    �� sr java.util.Vector��}[�;� I capacityIncrementI elementCount[ elementDatat [Ljava/lang/Object;xp       ur [Ljava.lang.Object;��X�s)l  xp  
    {sr  java.io.NotSerializableException(Vx ��5  xr java.io.ObjectStreamExceptiond��k�9��  xr java.io.IOExceptionl�sde%��  xr java.lang.Exception��>;�  xr java.lang.Throwable��5'9w�� L
    detailMessaget Ljava/lang/String;xpt Cars
    Whatever all that means
    Thanks for your help, i'm really confused
    DaJavaLodown
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Remove the for loop.
    If you write the vector, it's content will be written too.
    hi
    i am having trouble writing a vector to a file
    Here is my code
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import javax.swing.filechooser.*;
    public class Save
         JFileChooser fc = new JFileChooser();
         public Save(JFrame par, mainCollection col)
         try
    ObjectOutputStream out = new
    = new ObjectOutputStream(new FileOutputStream
    fc.getSelectedFile().getName()));
         out.writeObject(col.carCollection);
    for(int i = 0; i<
    = 0; i< col.carCollection.size();i++)
    Cars cd =
         Cars cd = (Cars)col.carCollection.elementAt(i);
         Vector v = cd.getModels();
         out.writeObject(v);
    }catch(FileNotFoundException
    ion e){System.out.println("not found");}
    catch(IOException e){System.out.println("IO" +
    " + e.getMessage());}
    Ok now the mainCollection col is from my other class
    mainCollection which has my main vector in it. This
    main vector contains car types which contain car
    models i.e. Ford which contains Falcon. What i need to
    do is copy the whole contents of vector over in one go
    to the file.
    With the code above i am getting IO Exception errors
    here is the errors
    �� sr java.util.Vector��}[�;� I
    capacityIncrementI elementCount[ elementDatat
    [Ljava/lang/Object;xp       ur
    r [Ljava.lang.Object;��X�s)l  xp  
    {sr  java.io.NotSerializableException(Vx ��5  xr
    java.io.ObjectStreamExceptiond��k�9��  xr
    java.io.IOExceptionl�sde%��  xr
    r java.lang.Exception��>;�  xr
    java.lang.Throwable��5'9w�� L
    detailMessaget Ljava/lang/String;xpt Cars
    Whatever all that means
    Thanks for your help, i'm really confused
    DaJavaLodown

  • Need help with writing to a file

    I am writing a program that is a file sharing program where i read in bytes from a socket in a BufferedReader into a char[]. Then i want to write to a file using FileOutputStream which only lets me write with a byte[]. Is there a way to read in the info into a byte[] rather a char[]?

    may be this code helps
    import java.io.*;
    public class cp
            public static void main(String args[])
                    try
                    File my=new File("source.txt");
                    FileReader fr=new FileReader(my);
                    BufferedReader br=new BufferedReader(fr);
                    String a;
                    FileWriter fw=new FileWriter(args[5]);
                    while((a=br.readLine())!=null)
                            System.out.println(a);
    fw.write(a);
    fw.close();
                    }catch(Exception e){}

  • Help with applescript/workflow/rule that would unflag mail when read (...)

    Here's my scenario:
    I have quite many mail.app rules that automatically filter and file incoming mails from newsletters, SNS, work, friends etc. and they all go in specific mailboxes (200+)
    I also have some rules that I trigger using MailActOn.
    Since with Lion theres now 6 different flags (and that you can rename them) I've included them in the rules actions and set them up to the following categories:
    - To Do
    - To Do Later
    - To File
    - News
    - Personal
    This actually allows me to have these smart mailboxes to appear only when they are flags active.
    Now for the first three I want to keep the flags permanently until I'm actully done with them.
    But for the "news" and "personal" ones I want to have them "unflag" once I read them.
    So to recap, is there a way to systematicall/periodically unflag messages when they are read from specific mailboxes or if they are flagged with a particular flag?
    I'd really appreciate if someone would help me out figure out an adequate solution to what I'd like to achieve.
    I'm not sure if a kind of a combination of either applescript/workflow/rule would actually make it work...

    Here's my scenario:
    I have quite many mail.app rules that automatically filter and file incoming mails from newsletters, SNS, work, friends etc. and they all go in specific mailboxes (200+)
    I also have some rules that I trigger using MailActOn.
    Since with Lion theres now 6 different flags (and that you can rename them) I've included them in the rules actions and set them up to the following categories:
    - To Do
    - To Do Later
    - To File
    - News
    - Personal
    This actually allows me to have these smart mailboxes to appear only when they are flags active.
    Now for the first three I want to keep the flags permanently until I'm actully done with them.
    But for the "news" and "personal" ones I want to have them "unflag" once I read them.
    So to recap, is there a way to systematicall/periodically unflag messages when they are read from specific mailboxes or if they are flagged with a particular flag?
    I'd really appreciate if someone would help me out figure out an adequate solution to what I'd like to achieve.
    I'm not sure if a kind of a combination of either applescript/workflow/rule would actually make it work...

  • Help with writing a static method in my test case class inside blue j

    I have this method that I have to test. below is the method I need to test and what I have to create inside my test case file to test it Im having big time problems getting going. Any help is appreciated.
    public String introduceSurprise ( String first, String last ) {
    int d1 = dieOne.getFace();
    Die.roll();
    if (d1 %4 == 2){
    return Emcee.introduce(first);
    else {
    return this.introduceSpy (first,last);
    So how do write tests to verify that every fourth call really does give a randomized answer? Write a static method showTests which
    creates an EmCee,
    calls introduceSurprise three times (doing nothing with the result (!)),
    and then calls it a fourth time, printing the result to the console window.
    Write this code inside your test class TestEmCee, not inside EmCee!

    hammer wrote:
    So how do write tests to verify that every fourth call really does give a randomized answer? Write a static method showTests which
    creates an EmCee,
    calls introduceSurprise three times (doing nothing with the result (!)),
    and then calls it a fourth time, printing the result to the console window.
    Write this code inside your test class TestEmCee, not inside EmCee!Those instructions couldn't be anymore straightforward. Make a class called TestEmCee. Have it create an EmCee object. Call introduceSurprise on that object 3 times. Then print the results of calling it a 4th time.

  • Help with writing a function

    Hello there
    I got a table with data like this:
    http://www.geocities.com/crisrobin100/ex_input.gif
    This table give me the amount of hours (value) starting in a date I can query from another table according to the owner_id and the amount of consecutive days(Repeats_count) this amount of hours refer to.
    I need to select this table and get something more friendlily so I can sum the hour for each month.
    The result need to look something like this:
    http://www.geocities.com/crisrobin100/ex_output.gif
    How can I do it?
    Chris

    SQL> create table mytable
      2  as
      3  select 30020 owner_id
      4       , 'FORECAST' owner_type
      5       , 0 compressed_entry_seq
      6       , 4 repeats_count
      7       , 8 value
      8    from dual union all
      9  select 30020, 'FORECAST', 1, 2, 0 from dual union all
    10  select 30020, 'FORECAST', 2, 5, 8 from dual union all
    11  select 30020, 'FORECAST', 3, 2, 0 from dual union all
    12  select 30020, 'FORECAST', 4, 5, 8 from dual union all
    13  select 30020, 'FORECAST', 5, 2, 0 from dual union all
    14  select 30020, 'FORECAST', 6, 5, 8 from dual union all
    15  select 30020, 'FORECAST', 7, 3, 0 from dual union all
    16  select 30020, 'FORECAST', 8, 3, 8 from dual
    17  /
    Tabel is aangemaakt.
    SQL> var P_STARTDATE varchar2(8)
    SQL> exec :P_STARTDATE := '01052007'
    PL/SQL-procedure is geslaagd.
    SQL> select owner_id
      2       , owner_type
      3       , d
      4       , value
      5    from mytable t
      6   model
      7         partition by (owner_id,owner_type,compressed_entry_seq)
      8         dimension by (0 i)
      9         measures ( to_date(:P_STARTDATE,'ddmmyyyy')
    10                    + sum(repeats_count) over (partition by owner_id,owner_type order by compressed_entry_seq)
    11                    - repeats_count d
    12                  , repeats_count rc
    13                  , value
    14                  )
    15         rules
    16         ( d[for i from 1 to rc[0]-1 increment 1] = d[0] + cv(i)
    17         , value[i<>0] = value[0]
    18         )
    19   order by owner_id
    20       , owner_type
    21       , d
    22  /
      OWNER_ID OWNER_TY D                        VALUE
         30020 FORECAST 01-05-2007 00:00:00          8
         30020 FORECAST 02-05-2007 00:00:00          8
         30020 FORECAST 03-05-2007 00:00:00          8
         30020 FORECAST 04-05-2007 00:00:00          8
         30020 FORECAST 05-05-2007 00:00:00          0
         30020 FORECAST 06-05-2007 00:00:00          0
         30020 FORECAST 07-05-2007 00:00:00          8
         30020 FORECAST 08-05-2007 00:00:00          8
         30020 FORECAST 09-05-2007 00:00:00          8
         30020 FORECAST 10-05-2007 00:00:00          8
         30020 FORECAST 11-05-2007 00:00:00          8
         30020 FORECAST 12-05-2007 00:00:00          0
         30020 FORECAST 13-05-2007 00:00:00          0
         30020 FORECAST 14-05-2007 00:00:00          8
         30020 FORECAST 15-05-2007 00:00:00          8
         30020 FORECAST 16-05-2007 00:00:00          8
         30020 FORECAST 17-05-2007 00:00:00          8
         30020 FORECAST 18-05-2007 00:00:00          8
         30020 FORECAST 19-05-2007 00:00:00          0
         30020 FORECAST 20-05-2007 00:00:00          0
         30020 FORECAST 21-05-2007 00:00:00          8
         30020 FORECAST 22-05-2007 00:00:00          8
         30020 FORECAST 23-05-2007 00:00:00          8
         30020 FORECAST 24-05-2007 00:00:00          8
         30020 FORECAST 25-05-2007 00:00:00          8
         30020 FORECAST 26-05-2007 00:00:00          0
         30020 FORECAST 27-05-2007 00:00:00          0
         30020 FORECAST 28-05-2007 00:00:00          0
         30020 FORECAST 29-05-2007 00:00:00          8
         30020 FORECAST 30-05-2007 00:00:00          8
         30020 FORECAST 31-05-2007 00:00:00          8
    31 rijen zijn geselecteerd.Regards,
    Rob.
    Message was edited by:
    Rob van Wijk
    Added owner_type to the partition clause of the sum analytic function. Output wasn't affected.

Maybe you are looking for