Optional Date parameters in SQL Command

I'm using Crystal Reports 2008. I want to make the start and end date parameters optional and have them default to the beginning and end of the previous month. Unfortunately, I'm using an SQL Command, rather than filtering in the Record Selection Formula, and I can't see any way to pass the computed start and end dates into the query. Is there any way to get the results I want short of omitting the date parameter in the query and doing all the filtering on the front end? Thanks.

The way I have gotten around this problem is to make the date parameters strings, and allow mnemonics such as PM for prior month, PD for prior day, PQ for prior quarter, etc.  I then wrote Crystal and database functions that convert these mnemonics to actual dates, which are then used where necessary.  This is also useful for scheduling the same report to run weekly (for the prior week), monthly (for the prior month) and quarterly (for the prior quarter)...
Also, remember that an SQL command in Crystal is basically the equivalent of a stored procedure, so you can do a lot of logic in them before returning your data set.  So, in your SQL, you could set a variable to either the parameter value or a calculated prior month dependent on if the date parameter is null (assuming Crystal allows no entry for the parameter, which I think 2008 does [I'm on XI R2]).
HTH,
Carl

Similar Messages

  • Parameters from SQL command not available in Web Viewer

    Hello,
    I recently built a report using Crystal Reports 2008, and I'm using it with CR4E 2.0 SP1.  The report has had a SQL command inserted into it, instead of pulling in tables and taking the desired fields.  This was done to speed up rendering time.  The SQL command also has some parameters in it to adjust the date, etc.
    When the report is viewed in CR4E under the web viewer, the parameters are not available to be changed.  They will appear at first for the initial settings, but cannot be changed afterward.  These parameters were set to "Editable" in CR2008.  In fact, other reports will work this way, but those reports don't use SQL commands as a datasource.  Is there another step I haven't completed?
    Thanks so much for your help!
    Edited by: John_AM on Jun 29, 2009 3:31 PM - Added CR4E version.

    Hi John,
    This is NOT a support case management system but a public forum for all to use. If you don't get an answer then you always have the option to purchase a support case and ahve a dedicated Engineer assist you.
    http://store.businessobjects.com/store/bobjamer/DisplayProductByTypePage&parentCategoryID=&categoryID=11522300?resid=-Z5tUwoHAiwAAA8@NLgAAAAS&rests=1254701640551
    Thank you

  • Converting Crystal Date Group to SQL Command

    When selecting the option to group on the server, I found that there are requirements in addition to selecting the option.
    I have a date grouping in Crystal like the following:
    dateadd("d", - weekday({table.date}, crMonday)+1,{table.date})
    Can this be converted to a SQL command?

    Hi Mark,
    Jyothi had given  an excellent query for you,  Congrats Jyothy!!
    But she didnt mantioned 'From clouse' on that.
    Let me correct that query with an example,
    My TableName: Invoice
    Primary Key: InvoicePID
    Date field:InvoiceDate
    Here the query will be
    select InvoicePID,  Dateadd(d,-(CASE  WHEN DATEName(dw,Invoice.InvoiceDate ) = 'Monday' THEN 1
                            WHEN DATEName(dw,Invoice.InvoiceDate ) = 'Tuesday' THEN 2     
                             WHEN DATEName(dw,Invoice.InvoiceDate ) = 'Wednesday' THEN 3
                             WHEN DATEName(dw,Invoice.InvoiceDate ) = 'Thursday' THEN 4
                             WHEN DATEName(dw,Invoice.InvoiceDate ) = 'Friday' THEN 5
                             WHEN DATEName(dw,Invoice.InvoiceDate ) = 'Saturday' THEN 6
                             WHEN DATEName(dw,Invoice.InvoiceDate ) = 'Sunday' THEN 7
    END
    )+1 ,Invoice.InvoiceDate)
    from Invoice
    You can change the tablename and field with respect to your DB.
    regards,
    Salah.

  • Data Conversion or Sql Command

    We are importing mdb data to SQL Server and require data type casting. Which is better to use and gives better performance?
    - Data Conversion
    - SQL Command (with casting)
    Thanks,
    Darren

    Using the sql cast will give you a performance benefit over using the data conversion transformation.  We should probably shelve the transformation unless if we are in a situation where we can’t return the data with the type we would like for the destination
    (ex. flat files or stored procedures).
    Check this short and sweet article :
    here
    If this post answers your query, please click "Mark As Answer" or "Vote as Helpful".

  • SQL command date parameters breaking SQL code

    Hello,
    I have an SQL statement that executes without error against Oracle 10g.  I've created a command in Crystal Reports 2008 for it.  It uses a date range.  When I parametrize the date range, and select 'Date' as my value type for the parameter, it breaks the SQL with the following error:
    "Failed to retrieve data from the database.
    Details: ORA-00907: missing right parenthesis
    [Database Vendor Code: 907]"
    Here is a sample SQL statement that breaks:
    SELECT *
    FROM gift g
    WHERE g.gift_date_of_record BETWEEN to_date ('{?GiftDateStart}', 'mm/dd/yyyy')
      AND to_date ('{?GiftDateEnd}', 'mm/dd/yyyy')
    Has anyone else experienced this problem or know a work-around?
    Thanks in advance!

    Hi,
    Do it like this
    SELECT *
    FROM gift g
    WHERE g.gift_date_of_record BETWEEN to_date ('{?GiftDateStart}', 'dd/mm/yyyy')
    AND to_date ('{?GiftDateEnd}', 'dd/mm/yyyy')
    I hope this will help you.
    Regards,
    Misra P

  • Strange caching on a paging enabled data table when sql-command changes

    Got some strange results when changing the command property of a JdbcRowSetXImpl. To reproduce:
    - create new jsp page
    - drag a table from Data Sources onto the page design grid
    - put a DataTable on the page design grid
    - bind DataTable to the RowSet for the table from step 2
    - enable paging on the DataTable; make sure the page is smaller than the number of items in the table. Also add the page navigation buttons
    - add a read-write property 'query' to SessionBean1
    - add a button to the page design grid
    - double click button and add
    getSessionBean1().setQuery("SELECT * FROM <table> ORDER BY <someColumnName>"); // replace <> strings with appropriate names
    - change the command property / query string for the table in the page backing bean to getSessionBean1().getQuery();
    - run application
    - click on button with query change code 'behind it'
    - click on '->' next page button
    - click on '<-' previous page button
    Notice that one page is sorted, the other not. All pages that have been displayed before the 'query change' button was pressed remain in the 'old' sort order.
    I have tried to call xxxRowSet.execute(), dataTable1Model.getDataCache().reset() on several places, to no avail.
    The only hack I found to be working was adding a private static int hackCounter, and changing the ctor to dataTable1Model.setDataCacheKey("com.sun.datacache.bug.xxxRowSet" + hackCounter++);
    Clearly there must be a better solution.

    did u try dataTable1Model.execute();
    you didn't mention that you did.
    I have had datatables that didn't update only to find I didn't do dataTable1Model.execute();
    Regards
    Jonathan

  • Sql command not working with date time??

    I am using my own sql query to fetch data in the sql command.
    Due to the problem I found - here is the basic example:
    The sql is:
    select to_number(to_date('10/11/2011 10:23:00','dd/mm/yyyy hh24:mi:ss') - to_date('10/11/2011 10:20:00','dd/mm/yyyy hh24:mi:ss'))  minu  from dual
    But I am not getting anything in Crystal Report tool!!
    In any sql tool I get results.
    When I am not using time part (hh24:mi:ss) :
    select to_number(to_date('10/11/2011','dd/mm/yyyy') - to_date('09/11/2011','dd/mm/yyyy'))  minu
    from dual
    I am getting data!!!!
    What is the problem??
    Initially I had it with parameters of type 'Date Time'
    Please, any one knows what the problem is?

    Hi,
    Sorry for the delay and thanks for answering.
    It was partial solution
    Moving to oracle driver, not (OLE DB), this specific one worked fine:
    select to_number(to_date('10/11/2011 10:23:00','dd/mm/yyyy hh24:mi:ss') - to_date('10/11/2011 10:20:00','dd/mm/yyyy hh24:mi:ss'))*100 minu from dual
    BUT
    When I tried to change one of the hardcoded values to be parameter of type 'Date Time' I couldn't pass the validation step - mostly the errors:
    "ORA 00900 Invalid sql statment"   and
    "ORA - 00907: Missing right parnthesis"
    No matter which format I used.
    Last version is:  
    select to_date('{?tsStartReport}','yyyy-mm-dd hh24:mi:ss') from dual
    Any idea why 'Date Time; is so problematic? How can I workaround it?

  • Dynamic SQL Command Queries Using Parameters

    Post Author: tdoman
    CA Forum: Data Connectivity and SQL
    I'm using Crystal Reports 11 and am trying to dynamically build part of the "Where" clause in the SQL command query to filter data on the server before the results are sent to the client. I'm doing this to decrease the load time of my reports by not having to send a large set of data to the client, then filter the results on the client side.
    I want to create a parameter list that is dynamically generated from a table in a database and allows you to select mutiple values from that list. For example: I have two tables. One employee table and one employee type table. The employee table lists all employees and their related employee types (full-time, part-time, and contractor). The employee type table lists the employee types that will dynamically be loaded into the parameters list.
    Employee Table
    ID    Name       TypeID
    1     Bob          2
    2     Steve        1
    3     John         3
    4     Bill            1
    Employee Type Table
    ID   Type
    1     Full-Time
    2     Part-Time
    3     Contractor
    Assuming the user selects u2018Full-Timeu2019 and u2018Contractoru2019 from the parameter list, the SQL command query I want to generate is as follows:
    SELECT *
    FROM emp, emp_type
    WHERE emp.ID = emp_type.ID and emp.TypeID in (u20181u2019, u20183u2019)
    I tried building the following SQL command query so it would dynamically replace {?EmpType} with the IDu2019s of the types the user selected but it doesnu2019t work. Any ideas how to fix this?
    SELECT *
    FROM emp, emp_type
    WHERE emp.ID = emp_type.ID and emp.TypeID in ({?EmpType})

    Post Author: tdoman
    CA Forum: Data Connectivity and SQL
    btw...I just realized I had a typo in my "where" clause of the previous example. It should have been like so:WHERE emp.TypeID = emp_type.ID and emp.TypeID in (u20181u2019, u20183u2019)  satish_nair31:
    Instead of passing the filter condition as parameter it would be fine if you pass it by ReportViewer.SelectionFormula Property.
    The selection formula property of report viewer control will dynamically append the where condition with the SQL value. You will pass the filter condition as per the syntax of language supported by crystal reports.I believe using the ReportViewer.SelectionFormula property you are referring to is only available if I'm loading the report through a VB application. If this is true, then this option will not work for me because I'm loading the report in a browser from the Crystal Report web server and currently don't have a VB application that can load the report. If I did, then I could dynamically build the SQL string using VB then pass it to the Crystal Report on the fly.But I'm trying to figure out if it's possible to do it without loading the report using VB. Please correct me if I'm wrong on these assumptions.

  • SQL Command and Datetime Parameters

    <p>Hi, </p><p>I am having problems  adding datetime parameters to a SQL command.</p><p>The code is AND table.startdatetime >= &#39;{?start}&#39; </p><p>I enter the time and date in the parameter and get the following error.<br /><br /><strong>Incorrect syntax near 2006</strong></p><p>Any clues</p><p>Thanks</p>

    Hi,
    What database you are using?
    Regards
    Sarobinyal

  • Mixing SQL Command parameters and UI created parameters

    Post Author: shecter
    CA Forum: Data Connectivity and SQL
    I'm using Crystal Reports XI.  I've created a report with an SQL Command - no other tables or views. I want to allow my users to be able to choose data from a dynamic parameter and have the SQL read that and spit out the results. I was able to add a parameter to the SQL using the Parameter column in the Command window. This allows my user to type in a parameter. However, when I run the report after creating a parameter using the UI (i.e. Field Explorer/Parameters/right clicking and selecting "new" and then adding the parameter to a field using the selection wizard), i first get a screen that shows me the parameter that I created in the SQL Command window, then I get a screen that shows me the UI created parameters. How can I make it show only one screen with all the parameters?  -Marc 

    Post Author: jenxia
    CA Forum: General
    SQL Command is :
    SELECT UNIQUE ContactID,  incomingAddress,applicationid,
    MediaStatus, MediaDirection, EndDateTime, StartDateTime
    FROM MMCAContactMediaViewwhere EndDateTime>= {?1-reportstarttime}  and  EndDateTime <= {?2-reportendtime}
    Order by ContactID
    Select formula using dynamic prompts as
    {Command.contactid} = {?ContactID} and{Command.applicationid} = {?ApplicationID} and{Command.incomingaddress} = {?IncomingAddress}

  • SQL Command Dynamic Parameters

    I have several reports which run on SQL commands.  I created a number of parameters and inserted them into the Command.  When I then modify the parameters to be 'dynamic', I get 2 sets of prompts.
    I'm told this is a bug in XI.  I'm using Crystal reports 2008.  Does anybody know if there is a fix for this bug?

    Use a separate Command to pull your LoVs (make sure that it's doesn't require any parameters). There should be no need to link the LoV Command to your main data Command... Just make sure you aren't placing any of the LoV fields on the report.
    HTH,
    Jason

  • Read from sql task and send to data flow task - [OLE DB Source [1]] Error: A rowset based on the SQL command was not returned by the OLE DB provider.

    I have created a execut sql task -
    In that, i have a created a 'empidvar' variable of string type and put sqlstatement = 'select distinct empid from emp'
    Resultset=resultname=0 and variablename=empidvar
    I have added data flow task of ole db type and I put this sql statement under sql command - exec emp_sp @empidvar=?
    I am getting an error.
    [OLE DB Source [1]] Error: A rowset based on the SQL command was not returned by the OLE DB provider.
    [SSIS.Pipeline] Error: component "OLE DB Source" (1) failed the pre-execute phase and returned error code 0xC02092B4.

    shouldnt setting be Result
    Set=Full Resultset as your query returns a resultset? also i think variable to be mapped should be of object type.
    Then for data flow task also you need to put it inside a ForEachLoop based on ADO.NET recordset and map your earlier variable inside it so as to iterate for every value the sql task returns.
    Also if using SP in oledb source make sure you read this
    http://consultingblogs.emc.com/jamiethomson/archive/2006/12/20/SSIS_3A00_-Using-stored-procedures-inside-an-OLE-DB-Source-component.aspx
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • How to find out the failed sql command and its data from DEFERROR

    Hi,
    has anybody a procedure or some other possibilities to read the content of column USER_DATA of the advanced replication view DEFERROR in order to find out the failed sql command and its column values?
    Thanks in advance.

    Hi Vishwa,
                 The control would be something like this for navigation in Get_p_xxx method u mention as link and u mention a event name which gets triggered on the click of this hyperlink. So your GET_P_XXX method would have the following code:
    CASE iv_property.
        WHEN if_bsp_wd_model_setter_getter=>fp_fieldtype.
          rv_value = cl_bsp_dlc_view_descriptor=>field_type_event_link.
        WHEN if_bsp_wd_model_setter_getter=>fp_onclick.
          rv_value = 'EXAMPLE'.
    Now you have to create a method as EH_ONEXAMPLE at your IMPL class and within which you would give an outbound plug method. Within the outbound plug the target data would be filled in the collection and window outbound plug would be triggered.
    This is a huge topic and  i have just mentioned you basic things.
    Regards,
    Bharathy.

  • Read data from SharePoint using ABAP sql command

    We need to read data from a SharePoint site and update the sap object services with the information. There is a lot of information on how to put data into Sharepoint from SAP, but we need to get data from SharePoint and put it into SAP. Is it possible to retrieve data from SharePoint using sql command in ABAP program? If it is possible, what do we need to do to have SAP recognize where to get the SharePoint data?
    Richard Newman

    Hi Newman,
    You can use native sql in your abap code to read data from SharePoint's database. But I would suggest you to generate a SharePoint webservice which can provide you the neccessary data so that you can consume this webservice in ABAP
    (Will be quite faster than native sql).
    Regards,
    Ozcan.

  • Converting a SQL Command Parameter from Date to Char

    Hi,
    I'm using CR XI version 11.0.0.1282.  I've created a report using a SQL Command and have a parameter defined as Date.  I need to convert this Date parameter to a CHAR and have created my WHERE clause as:
    WHERE  "CC_PAYH"."PPOST"= CHAR ('{?From Date}') AND
    "CC_PAYH"."PPTYPE"<>13
    I get a message saying 2008 is not a valid token which in AS400 means it doesn't like the year.  Go figure. 
    I've tried running a similar query in AS400 and I get the desired affect.  I've tried removing the parameter from the Where clause and putting it into the Select like:
    CHAR ('{?From Date}') as MyTestDate
    just to see the representation I would get and I get the same error. 
    The question I have like everyone else is; is this possible with this version of Crystal?  I assume so since the same query will work in the database itself. 
    Thanks,
    Brian

    Hi Brain,
        Can you please try the query similar to the following syntax and verify whether it helps you!
    Select * from Orders where ([Order Date]) =
    CStr({?Date})
    Regards,
    Vinay

Maybe you are looking for

  • Screen name recovery

    I can't remember the screen name I used to sign in to the Minecraft game I purchased, and I can't figure out how to recover it or my password. Can someone please help me get them sent to my e-mail? THANK YOU!

  • Which one is the Best Backup and Recovery Method in your point of view?

    Friends, Currently we are taking hot backup with archive mode. we have backup script to copy the datafile and we will copy the archive files in a separate folder. alter tablespace system begin backup; host cp /u01/app/oracle/oradata/livedb/system.dbf

  • Does messages on an iPhone use data if no wi-fi available?

    Does messages on an iPhone use data if no wi-fi available?

  • Finesse

    I have below servers and client already setup: - Call Manager 10 - Cisco Unified Call Center Express - Cisco Finesse Client for Agent - Cisco Finesse Client for Supervisor I don't know how to setup silent monitoring to Agent by Supervisor, through BI

  • Adding movies to ipod video

    how do you add movies to your ipod video