Data Type Convertion in ABAP

Hi,
i want to convert a numeric type field to character type field in ABAP,
and also i want to concatenate some set of different types of field to a character type field at last
if i give just like this
<b>CONCATENATE '   ' it_pa0000-pernr it_pa0105-usrid '                        ' it_pa0105-begda into record_tab-string.</b>
it remove space out from the string i need space also in the <b>record_tab-string</b>,
Reg,
Hariharan

Hi,
The CONCATENATE statement combines two or more separate strings into one.
<b>CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>].</b>
This statement concatenates the character fields <c1> to <cn> and assigns the result to <c>. The system ignores spaces at the end of the individual source strings.
The addition SEPARATED BY <s> allows you to specify a character field <s> which is placed in its defined length between the individual fields.
try with this sample code..........
CONCATENATE  it_pa0000-pernr it_pa0105-usrid  it_pa0105-begda INTO record_tab-string  SEPARATED BY SPACE.
regards,
Ashok Reddy

Similar Messages

  • Profibus data type converting to floating point

    Hi, 
    Is there an efficient way to convert  the incoming data to the floating point in the NI cRIO Profibus system? 
    1) The system is : NI cRIO 9068 Controller with Comsoft profibus slave module. The lavview we are using is 2013. 
    2) We are using profibus slave example and are able to see a array of unsigned 8 bit data. Please see the Output data shown in the attachement.
    3) On the other side of profibus system, thrid party profibus master are converting floating points and tranmit the converted data to NI profibus slave. 
    Attachments:
    Screenshoot.png ‏7 KB

    If it's just a matter of converting data types once you have the data in LabVIEW, you can always manually scale and convert the data using the arithmetic functions and the "To Double Precision Float" or "To Single Precision Float" functions. You just have to know what floating point value the unsigned byte integer corresponds to. Is that what you're asking?
    If you're asking for a way to this inherently with the Profibus functions, I'm afraid I can't be of much help...
    Ryan K.

  • Data Type structure within ABAP

    Can the structure of a message type within XI be seen using ABAP.

    Hi Martin !
    I'm afraid not. The process works the other way around. You can create/define it in ABAP and then import it in XI (as RFC).
    Or design it in XI (Integration Repository) and "export" it as an ABAP Proxy class in SAP ERP.
    Regards,
    Matias.

  • ABAP Data type to XI data type mapping

    Hi,
    I am creating a message type in XI corresponding to a ABAP structure. There are couple of data types on the ABAP side (for example: RAW, QUAN, CURR CUKY, UNIT, NUMC etc) which i have no idea on what it should be mapped to on the XI side(xsd:string, xsd:token, xsd:int etc).
    Is there is any document on mapping from ABAP data type to XML data type ? if yes please send it across.([email protected])
    if no doc available, if some body could let me know what these ABAP data type would map on the XI side it would great.
    Best Regards,
    Kiran

    Hi Kiran,
    just some more background information to the data types CURR, CUKY, QUAN, UNIT:
    1) Each field of data type CURR must be assigned to a field of data type CUKY (the financial amount must be assigned to a currency) and each field of data type QUAN must be assigned to a field of data type UNIT (each quantity must have a dimension). If you want to know this assignment for your specific ABAP structure, you can find it using transaction SE11 with your ABAP structure and go to the tab <i>Currency/Quantity fields</i>. Here you find the information under <i>Reference table</i> and <i>Ref. field</i>.
    2) The default number of decimals for a field of data type CURR is 2, but this can be overwritten by the assigned CUKY field. You can check the actual number of decimals for a specific currency with transaction OY04. Here are all currency list that do <b>not</b> have 2 decimals.
    3) The default number of decimals for a field of data type QUAN is 3, but this can be overwritten by the assigned UNIT field. You can check the actual number of decimals for a specific unit with transaction CUNI. Click on <i>Units of measurement</i> (pick the correct dimension first), double click on your unit and you find the info in the field <i>Decimal places</i>.
    4) Depending on the data you receive your conversions can get quite tricky. Lets take as an example a field of type CURR. If you find the value 1000 in there, this would convert to 10.00 USD if the assigned CUKY field contains the value USD (US dollar). But the same value ca represent 1000 JPY (Japanese Yen) if the assigned CUKY field contains the value JPY. What i try to say is that the value in the field of type CURR alone does not give you the actual amount, you have to know the value of the CUKY field as well. Similar for QUAN and UNIT.
    Regards,
    Claus

  • How to define MDM real data type in ABAP ?

    Hi,
    I want to fetch MDM Repository data using MDM API .
    I am strugling as one field in MDM is of real type .
    Please tell me how I could define Real data type field in ABAP ?
    Thanks.
    Sandesh

    I recently had a Real type added to a repository I'm working on and noticed a dump in the API itself when trying to fetch data from that field. I'm running 5.5 so you may be experiencing a different issue. I haven't resolved the issue yet as it isn't a priority but I will most likely move to a string field and just ensure that the field has its decimal rule respected logically.

  • Invalid data type conversions

    what are the invalid data type conversions in ABAP ???
    Moderator message: please search for available information/documentation.
    Edited by: Thomas Zloch on Mar 10, 2012 6:01 PM

    No Amanda,
    The values that I see in message monitor are also those that comes to XSLT programs as input.
    I investigated our problem a little further myself:
    1) XI always converts messages into XML format - this everybody knows.
    2) In XI documentation it is declared that XI uses ISO 8601 for DATE type formatting. That's why you see dates in format YYYY-MM-DD in XML data in message monitoring.
    3) The appearance of those decimal values are not that obvious for me. If XI uses ABAP transformation for message content then applies the rules for converting ABAP data types into XML. For this there is a SAP document 'ABAP - XML mapping' from TechEd2004. This document seems to describe how ABAP data types are handled by XML transformation.
    Anyway, we currently need to play with decimal values in XSLT mapping programs inside XI:
    a) add leading 0 integer if source value < 1
    RFC returns 0.123 -> XI converts to XML '.123' -> XSLT mapper should return '0.123' ->SOAP response returns '0.123'
    b) add decimal point and trailing zeros
    RFC returns 0.000 -> XI converts to XML '0' -> XSLT mapper should return '0.000' ->SOAP response return '0.000'
    With dates, the problem is actually on documenting mapping rules when writing interface specifications. If you would write an EAI-solution-independent conversion rule (RFC/date->SOAP/char) for date field it could sound like: YYYYMMDD -> dd.mm.yyyy. This works semantically between these systems but would not work for XI-developer, because he get YYYY-MM-DD from the RFC.
    Additionally the decimal type conversion requirements in XSLT mapping programs probably only applies XI and are therefore not reusable in other EAI environments.
    I would be glad if somebody would still have further comments for this data type conversion issue.
    br: Kimmo

  • Data types pls..

    Hi All,
    What are all the data types we have, let me know each data type purpose pls....
    Akshitha.

    Data types describe the technical attributes of data objects. They are purely descriptive and do not take up any memory space
    Data Types in the ABAP Dictionary
    The ABAP Dictionary allows you to define global data types. You can use the TYPE addition of an appropriate ABAP statement to refer to these data types in any ABAP program in the system.
    There are three groups on the initial screen:
    Database Tables and Views
    One of the most important tasks of the ABAP Dictionary is to administer database tables in the R/3 database. The Dictionary contains metadescriptions of the database tables, and uses these to create the physical tables in the database. A view is a "virtual table" containing fields from one or more tables.
    In the description of a database table, the table lines consist of single fields or columns. An elementary data type must be assigned to each column. The elementary types in the ABAP Dictionary are data elements. Like data objects in ABAP programs, database tables and views have data types as attributes. A line of a database table or view has the data type of a flat structure, which consists of individual data elements.
    In ABAP programs, you can use the TYPE addition with the data type of a database table or view. You may refer to the whole structure or to individual components:
    ... TYPE <dbtab> ...
    refers to the complex data type of the structure,
    ... TYPE <dbtab>-<ci> ...
    refers to the elementary data type of component <ci>.
    If you define a complex data type <t> as a structure using
    TYPES <t> TYPE <dbtab>.
    the components of the data type <t> inherit the names of the components of the database table or view, and can be addressed in the program using <t>-<ci>.
    To ensure compatibility with previous releases, you can still use the LIKE addition to refer to database tables or views, except within classes. The reason for this is that in earlier releases, the physical presence of the database tables as objects was emphasized, even though the Dictionary only contains metadescriptions and data types.
    Defining program-local data types by referring to database tables and views is one of the essential techniques for processing data from database tables in ABAP. Data objects that you define in this way always have the right type to contain data from the corresponding database table. ABAP Open SQL allows you to read a single field, a range of fields, or an entire database table or view into an internal table.
    TYPES: city type spfli-cityfrom,
           spfli_type TYPE STANDARD TABLE OF spfli WITH DEFAULT KEY.
    DATA: wa_city  TYPE city,
          wa_spfli TYPE spfli_type.
    SELECT SINGLE cityfrom FROM spfli
                           INTO wa_city
                           WHERE carrid = 'LH' AND connid = '400'.
    SELECT * FROM spfli INTO TABLE wa_spfli.
    This example defines an elementary data type CITY that refers to a single field of the database table SPFLI and an internal table SPFLI_TYPE, whose line type is the same as the structure of the database table. The SELECT statement reads data from the database into the corresponding data objects.
    Data types
    Data types are the actual type definitions in the ABAP Dictionary. They allow you to define elementary types, reference types, and complex types that are visible globally in the system. The data types of database tables are a subset of all possible types, namely flat structures. Global object types (classes and interfaces) are not stored in the ABAP Dictionary, but in the class library. You create them using the Class Builder.
    For a detailed description of data types and their definitions, refer to the Types section of the ABAP Dictionary documentation. The following descriptions mention the types only briefly, along with how you can refer to them from ABAP programs.
    Data Elements
    Data elements in the ABAP Dictionary describe individual fields. They are the smallest indivisible units of the complex types described below, and are used to specify the types of columns in the database. Data elements can be elementary types or reference types.
    Elementary Types
    Elementary types are part of the dual-level domain concept for fields in the ABAP Dictionary. The elementary type has semantic attributes, such as texts, value tables, and documentation, and has a data type. There are two different ways to specify a data type:
    By directly assigning an ABAP Dictionary type.
    You can assign a predefined ABAP Dictionary type and a number of characters to an elementary type. The ABAP Dictionary has considerably more predefined types than the ABAP programming language. The number of characters here is not the field length in bytes, but the number of valid characters excluding formatting characters. The data types are different because the predefined data types in the ABAP Dictionary have to be compatible with the external data types of the database tables supported by the R/3 System.
    When you refer to data types from the ABAP Dictionary in an ABAP program, the predefined Dictionary types are converted to ABAP types as follows:
    Dictionary type
    Meaning
    Maximum length n
    ABAP type
    DEC
    Calculation/amount field
    1-31, 1-17 in tables
    P((n+1)/2)
    INT1
    Single-byte integer
    3
    Internal only
    INT2
    Two-byte integer
    5
    Internal only
    INT4
    Four-byte integer
    10
    I
    CURR
    Currency field
    1-17
    P((n+1)/2)
    CUKY
    Currency key
    5
    C(5)
    QUAN
    Amount
    1-17
    P((n+1)/2)
    UNIT
    Unit
    2-3
    C(n)
    PREC
    Accuracy
    2
    X(2)
    FLTP
    Floating point number
    16
    F(8)
    NUMC
    Numeric text
    1-255
    N(n)
    CHAR
    Character
    1-255
    C(n)
    LCHR
    Long character
    256-max
    C(n)
    STRING.
    String of variable length
    1-max
    STRING.
    RAWSTRING
    Byte sequence of variable length
    1-max
    XSTRING
    DATS
    Date
    8
    D
    ACCP
    Accounting period YYYYMM
    6
    N(6)
    TIMS
    Time HHMMSS
    6
    T
    RAW
    Byte sequence
    1-255
    X(n)
    LRAW
    Long byte sequence
    256-max
    X(n)
    CLNT
    Client
    3
    C(3)
    LANG
    Language
    internal 1, external 2
    C(1)
    ("max" in LCHR and LRAW is the value of a preceding INT2 field. The "internal" length of a LANG field is in the Dictionary, the "external" length refers to the display on the screen.
    Assigning a domain
    The technical attributes are inherited from a domain. Domains are standalone Repository objects in the ABAP Dictionary. They can specify the technical attributes of a data element. One domain can be used by any number of data elements. When you create a domain, you must specify a Dictionary data type (see above table) and the number of characters.
    Reference Types
    Reference types describe single fields that can contain references to global classes and interfaces from the ABAP class library.
    In an ABAP program, you can use the TYPE addition to refer directly to a data element. The predefined Dictionary data types of the domain are then converted into the corresponding ABAP types.
    If you define a local data type in a program by referring to a data element as follows:
    TYPES <t> TYPE <data element>.
    the semantic attributes of the data element are inherited and will be used, for example, when you display a data object with type <t> on the screen. Since all data types in the ABAP Dictionary are based on data elements, they all contain the corresponding semantic attributes.
    TYPES company TYPE s_carr_id.
    DATA wa_company TYPE company.
    wa_company = 'UA '.
    WRITE: 'Company:', wa_company.
    This example defines a local type COMPANY that refers to the data element S_CARR_ID. The data element is linked to the identically-named domain S_CARR_ID. The domain defines the technical attributes as data type CHAR with length 3. The local data type COMPANY in the program therefore has the ABAP type C(3). COMPANY also adopts the semantic attributes of the data element. In the above example, we declare a data object WA_COMPANY with this type and display it on a list. If the user chooses F1 help for the output field, the help text stored in the ABAP Dictionary will appear in a dialog box.
    Structures
    A structure is a sequence of any other data types from the ABAP Dictionary, that is, data elements, structures, table types, or database tables. When you create a structure in the ABAP Dictionary, each component must have a name and a data type.
    In an ABAP program, you can use the TYPE addition to refer directly to a structure.
    If you define a local data type in a program by referring to a structure as follows:
    TYPES <t> TYPE <structure>.
    the construction blueprint of the structure is used to create a local structure <t> in the program. The predefined Dictionary data types of the domains used by the data elements in the structure are converted into the corresponding ABAP types. The semantic attributes of the data elements are used for the corresponding components of the structure in the program. The components of the local structure <t> have the same names as those of the structure in the ABAP Dictionary.
    To ensure compatibility with previous releases, it is still possible to use the LIKE addition in an ABAP program to refer to a structure in the ABAP Dictionary (except in classes).
    Suppose the structure STRUCT is defined as follows in the ABAP Dictionary:
    Field name
    Type name
    Description
    COL1
    CHAR01
    Character field with length 1
    COL2
    CHAR08
    Character field with length 8
    COL3
    CHAR10
    Character field with length 10
    The types CHAR01 to CHAR10 are data elements with corresponding domains. We can refer to this structure in ABAP:
    TYPES struct_type TYPE struct.
    DATA wa TYPE struct_type.
    wa-col1 = '1'.
    wa-col2 = '12345678'.
    wa-col3 = '1234567890'.
    This program creates a local structure in the program - STRUCT_TYPE - and a corresponding data object WA. We can address the components using the component names from the original structure.
    Table Types
    Table types are construction blueprints for internal tables that are stored in the ABAP Dictionary. When you create a table type in the ABAP Dictionary, you specify the line type, access type, and key. The line type can be any data type from the ABAP Dictionary, that is, a data element, a structure, a table type, or the type of a database table. You can also enter a predefined Dictionary type directly as the line type, in the same way that you can with a domain.
    In an ABAP program, you can use the TYPE addition to refer directly to a table type.
    If you define a local data type in a program by referring to a table type as follows:
    TYPES <t> TYPE <table>.
    the construction blueprint of the table type is used to create a local internal table <t> in the program. The predefined Dictionary data types of the domains used by the data elements in the structure are converted into the corresponding ABAP types. The semantic attributes of the data elements are used for the corresponding components of the internal table in the program.
    Suppose the table type STRUCT_TABLE is defined in the Dictionary with the line type STRUCT from the previous example. We can refer to this in ABAP:
    TYPES table_type TYPE struct_table.
    DATA: table_wa TYPE table_type,
          line_wa  LIKE LINE OF table_wa.
    LOOP AT table_wa INTO line_wa.
      WRITE: line_wa-col1, line_wa-col1, line_wa-col1.
    ENDLOOP.
    This program defines an internal table type TABLE_TYPE. From it, we define data objects TABLE_WA and LINE_WA. LINE_WA corresponds to the line type of the table type in the Dictionary, and is therefore compatible with the structure STRUCT.
    Type Groups
    Before Release 4.5A, it was not possible to define standalone types in the ABAP Dictionary to which you could refer using a TYPE addition in an ABAP program. It was only possible to refer to flat structures. Structures in programs corresponded to the structures of database tables or structures in the ABAP Dictionary. In ABAP programs, you could only refer to database tables and structures in the ABAP Dictionary using LIKE. It was, however, possible to refer to individual components of the Dictionary type. Complex local data types such as internal tables or deep structures had no equivalent in the ABAP Dictionary. The solution to this from Release 3.0 onwards was to use type groups. Type groups were based on the include technique, and allowed you to store any type definitions globally in the Dictionary by defining them using TYPES statements.
    The definition of a type group is a fragment of ABAP code which you enter in the ABAP Editor. The first statement for the type group <pool> is always:
    TYPE-POOL <pool>.
    After this came the definitions of data types using the TYPES statement, as described in Local Data Types in Programs. It was also possible to define global constants using the CONSTANTS statement. All the names of these data types and constants must begin with the name of the type group and an underscore:
    In an ABAP program, you must declare a type group as follows before you can use it:
    TYPE-POOLS <pool>.
    This statement allows you to use all the data types and constants defined in the type group <pool> in your program. You can use several type groups in the same program.
    Let the type group HKTST be created as follows in the ABAP Dictionary:
    TYPE-POOL hktst.
    TYPES: BEGIN OF hktst_typ1,
                    col1(10) TYPE c,
                    col2 TYPE i,
           END OF hktst_typ1.
    TYPES hktst_typ2 TYPE p DECIMALS 2.
    CONSTANTS hktst_eleven TYPE i VALUE 11.
    This type group defines two data types HKTST_TYP1 and HKTST_TYP2, as well as a constant HKTST_ELEVEN with the value 11.
    Any ABAP program can use these definition by including a TYPE-POOLS statement:
    TYPE-POOLS hktst.
    DATA: dat1 TYPE hktst_typ1,
          dat2 TYPE hktst_typ2 VALUE '1.23'.
    WRITE: dat2, / hktst_eleven.
    The output is:
    1,23
    11
    The data types defined in the type group are used to declare data objects with the DATA statement and the value of the constant is, as the output shows, known in the program.

  • Data type and Data object

    Hi Friends,
            What is the difference between Data type and Data object?
    Best Regards,
    VRV Singh

    hi
    good
    Each ABAP program define its own data types using the statement.
    TYPES dtype TYPE type ...
    and declare its own variables or instance attributes of classes using the statement
    DATA var {TYPE type} ...
    Within the program or a class, you can also define local data types and variables within procedures. Local variables in procedures obscure identically-named variables in the main program or class.
    When creating data types and data objects, there are a number of naming convention that also apply for other local program definitions, such as procedures. These are described in detail in the keyword documentation.
    The Additions TYPE and LIKE
    The additions TYPE type and LIKE dobj are used in various ABAP statements. The additions can have various meanings, depending on the syntax and context.
    ·        Definition of local types in a program
    ·        Declaration of data objects
    ·        Dynamic creation of data objects
    ·        Specification of the type of formal parameters in subroutines
    ·        Specification of the type of formal parameters in methods
    ·        Specification of the type of field symbols
    Constructing New Data Types
    The TYPE addition allows you to construct new data types in the TYPES, DATA; CONSTANTS; and STATICSstatements. In the TYPES statement, these are local data types in the program. In the other statements, they are attributes of new data objects, meaning that the newly defined data types are not free-standing. Rather, they are linked to database objects.This means that you can refer to them using the LIKEaddition, but not using TYPE.
    To construct new data types, the addition TYPE can be used with the following type constructors:
    ·        Construction of reference types
    REF TO type|dobj
    ·        Construction of structured data types
    BEGIN OF struc_type.
    END OF struc_type.
    ·        Construction of table types
    tabkind OF linetype
    These data types only exist during the runtime of the ABAP program.
    Referring to Known Data Types or Data Objects
    Using the additions TYPE or LIKE in the TYPESstatement, local data types in a program can be referred to known data types or data objects. This is mainly the case with user-defined elementary data types. If you declare variables using the additions TYPE type or LIKE dobj with statement DATA, the data type of var is already fully defined before the declaration is made.
    The known types or data that are referred to must be visible at the point where the data type or variable is declared.
    A known data type can be any of the following:
    ·        A predefined ABAP type to which you refer using the TYPE addition
    ·        An existing local data type in the program to which you refer using the TYPE addition
    ·        The data type of a local data object in the program to which you refer using the LIKE addition
    ·        A data type in the ABAP Dictionary to which you refer using the TYPE addition. To ensure compatibility with earlier releases, it is still possible to use the LIKE addition to refer to database tables and flat structures in the ABAP Dictionary. However, you should use the TYPE addition in new programs.
    The LIKE addition takes its technical attributes from a visible data object. As a rule, you can use LIKE to refer to any object that has been declared using DATA or a similar statement, and is visible in the current context.  The data object only has to have been declared. It is irrelevant whether the data object already exists in memory when you make the LIKE reference.
    ·        In principle, the local data objects in the same program are visible. As with local data types, there is a difference between local data objects in procedures and global data objects. Data objects defined in a procedure obscure other objects with the same name that are declared in the global declarations of the program.
    ·        You can also refer to the data objects of other visible ABAP programs. These might be, for example, the visible attributes of global classes in class pools. If a global class cl_lobal has a public instance attribute or static attribute attr, you can refer to it as follows in any ABAP program:
    DATA dref TYPE REF TO cl_global.
    DATA:  f1 LIKE cl_global=>attr,
           f2 LIKE dref->attr.
    You can access the technical properties of an instance attribute using the class name and a reference variable without first having to create an object. The properties of the attributes of a class are not instance-specific and belong to the static properties of the class.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb2ff3358411d1829f0000e829fbfe/content.htm
    thanks
    mrutyun^

  • Proper Data type for transferring XML from ABAP to XI

    Dear Colleagues,
    I have a question on how to wrap XML data, that itself contains an encoding
    declaration, so that it will be properly transferred to XI.
    XML Generation: "always use X"
    I have searched a lot on SDN and other resources but could not find
    information, describing how a web service should wrap unicode-data when
    making it available to XI. The XML processing group emphasizes that all generation of XML should be done using X-bases (HEX) datatypes in ABAP and preferably using UTF-8 as ancoding. This by itself is not a problem.
    But transferring UTF-8-XML - through which interface?
    When a webservice provides an XML Stream and wants to transfer it to XI then there is a bit of a paradox situation, because it has to choose between using an X-based or Character-based type for its interface
    -> as Binary data?
    - when using X-based data types in the interface, I have control of the character encoding, but I expect that the XML-information will probably be wrapped in base64 encoding and then the XI will receive a base64 encoded
    XML-block instead of "plain" XML.
    I did not find any reference information on how the soap interface of XI and the WAS behave when transferring X-based data, however.
    -> as Character data?
    - on the other hand when using Character-based data types (e.g. String), I have no control of the codepage being used. I have then only the choice to generate the default encoding of the application server. Maybe this encoding
    will be transformed later to a different encoding, but usually during this process the header, which declares the encoding in use will not be adapted as well.
    So if I have a unicode machine, it will generate UTF-16 - based XML. I have no other choice, if I use a character-based type for output. And this will also be stated in the header of the XML stream. If the XML stream
    leaves the system it will probably be transformed to UTF-8, but the XML-header will still state the content to be UTF-16, because the header will probably not be auto-converted together while adapting the Character
    encoding.
    Because of these issues I am quite insecure, on how to generate and wrap UTF-8 - based XML, so that I can properly hand it over to XI, ensuring that
    it stays UTF-8 and that XI can really unwrap it automatically.
    Does anyone have a tip in which type to wrap XML-based data on the ABAP stack so it will be usable in XI?
    Thank you very much for your attention and time.
    Yours
    Christian Steinert

    Something like this should work (with a little tweek I imagine)
    This would be in the 'Command on Target':
    OdiFtpGet "-HOST=<%=odiRef.getInfo("SRC_DSERV_NAME")%>" "-USER= '<%=odiRef.getInfo("SRC_USER_NAME")%>'" "-PASSWORD= <%=odiRef.getInfo("SRC_PASS")%>" "-REMOTE_DIR=<%=odiRef.getInfo("SRC_SCHEMA")%>" "-REMOTE_FILE=<%=odiRef.getTable("L", "COLL_NAME", "W")%>" "-PASSIVE_MODE=YES"
    Set the Technology of the 'Command on Source' as File, and the technology of the 'Command on Target' as ODI Tools
    Edited by: Bos on Jun 30, 2011 11:53 AM

  • Need to convert long data type to varchar2

    I need to convert a long datatype in an existing table to a
    varchar2, in either another table or view. I have a 3rd party
    application which needs to query the data in the long data type,
    but it can "handle" the long.
    What is the best way to do this? I tried to make a trigger, but
    I must be missing something. Here is the trigger.
    CREATE OR REPLACE TRIGGER "PROD".SV_GET_RTG_COMNT
    BEFORE INSERT OR UPDATE ON PROD.RELS_RTG_SEQ_COMNT
    FOR EACH ROW
    WHEN (OLD.rels_rtg_no = NEW.rels_rtg_no)
    DECLARE
    -- DECLARE VARIABLES
    RTG_COMNT_VAR VARCHAR2(32);
    RTG_COMNT_LONG LONG;
    BEGIN
    Select COMNT_TXT into RTG_COMNT_LONG
    from rels_rtg_seq_comnt;
    RTG_COMNT_VAR := 'TEXT' || substr(RTG_COMNT_LONG,1,32);
    -- If INSERTING
    Insert into SV_RTG_SEQ_COMNT (print_cd, comnt_no,
    seq_no, rtg_no, comnt_txt) values
    (:new.print_cd, :new.comnt_no, :new.seq_no, :new.rels_rtg_no,
    rtg_comnt_var);
    END;
    I tried to use the substr command on the comnt_txt in view but
    received an invalid datatype error.
    Any help would be greatly appreciated.
    Doug

    create another table with clob datatype
    1)create table clob_tab(pkval number,clob_col clob);
    2) insert into clob_tab (select pkval,to_lob(long_col) from
    long_tab);
    3) use dbms_lob package to do string manipulation using
    substr,instr functions on clob column.

  • Error converting data type nvarchar to numeric 'witholding tax' (OWHT)

    Hi Guys.
    After I have upgraded my clients 2007 PL 30 database to 8.81 PL05, and running a repair to fix inconsistincies, I am receiveing some error when opening any sales documents.
    It takes place when I open a sales document, or browse previous docs. When browsing previous docs, it onlly happens on some of them.
    I also receive a different error when viewing sales orders: Error converting data type nvarchar to numeric (CRD2).
    Any ideas how to fix it?
    It does not limit me from processing and using the rest of the functionality. All calculations with queries in the docs are still working.
    Thanks.

    Hi,
    Please check Note No. : 1402855 and see if the same applied to the issue mentioned by you.
    Kind Regards,
    Jitin
    SAP Business One Forum Team

  • Saving result from sp_executesql into a variable and using dynamic column name - getting error "Error converting data type varchar to numeric"

    Im getting an error when running a procedure that includes this code.
    I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql
    DECLARE @retval AS DECIMAL(12,2)
    DECLARE @MonthVal VARCHAR(20), @SpreadKeyVal INT
    DECLARE @sqlcmd AS NVARCHAR(150)
    DECLARE @paramdef NVARCHAR(150)
    SET @MonthVal = 'Month' + CAST(@MonthNumber AS VARCHAR(2) );
    SET @SpreadKeyVal = @SpreadKey; --CAST(@SpreadKey AS VARCHAR(10) );
    SET @sqlcmd = N' SELECT @retvalout = @MonthVal FROM dbo.CourseSpread WHERE CourseSpreadId = @SpreadKeyVal';
    SET @paramdef = N'@MonthVal VARCHAR(20), @SpreadKeyVal INT, @retvalout DECIMAL(12,2) OUTPUT'
    --default
    SET @retval = 0.0;
    EXECUTE sys.sp_executesql @sqlcmd,@paramdef, @MonthVal = 'Month4',@SpreadKeyVal = 1, @retvalout = @retval OUTPUT;
    SELECT @retval
    DECLARE @return_value DECIMAL(12,2)
    EXEC @return_value = [dbo].[GetSpreadValueByMonthNumber]
    @SpreadKey = 1,
    @MonthNumber = 4
    SELECT 'Return Value' = @return_value
    Msg 8114, Level 16, State 5, Line 1
    Error converting data type varchar to numeric.

    Please follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your data. You should follow ISO-11179 rules for naming data elements. You should follow ISO-8601 rules for displaying temporal data. We need
    to know the data types, keys and constraints on the table. Avoid dialect in favor of ANSI/ISO Standard SQL. And you need to read and download the PDF for: 
    https://www.simple-talk.com/books/sql-books/119-sql-code-smells/
    >> I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql <<
    This is so very, very wrong! A column is an attribute of an entity. The idea that you are so screwed up that you have no idea if you want
    the shoe size, the phone number or something else at run time of this entity. 
    In Software Engineering we have a principle called cohesion that says a model should do one and only one task, have one and only one entry point, and one and only one exit point. 
    Hey, on a scale from 1 to 10, what color is your favorite letter of the alphabet? Yes, your mindset is that level of sillyity and absurdity. 
    Do you know that SQL is a declarative language? This family of languages does not use local variables! 
    Now think about “month_val” and what it means. A month is a temporal unit of measurement, so this is as silly as saying “liter_val” in your code. Why did you use “sp_” on a procedure? It has special meaning in T-SQL.  
    Think about how silly this is: 
     SET @month_val = 'Month' + CAST(@month_nbr AS VARCHAR(2));
    We do not do display formatting in a query. This is a violation of at the tiered architecture principle. We have a presentation layer. But more than that, the INTERVAL temporal data type is a {year-month} and never just a month. This is fundamental. 
    We need to see the DDL so we can re-write this mess. Want to fix it or not?
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Errors in the back-end database access module. OLE DB was unable to convert a value to the data type requested for column 5

     
    Hi All,
    I'm still struggling with the same cube and this is my 3rd post and once i fix some thing the other breaks. Please forgive me. When i process my cube i'm getting the error:
    Errors in the back-end database access module. OLE DB was unable to convert a value to the data type requested for column 5.
    My question is when the error says column 5 (is it the column 5 in the DSV?) or is it the column 5 in the DIMENSION list?
    My next question is the DSV Query works perfectly fine , so why this error in cube? This is what i have in the query in DSV.
    Please need help. In the below query both the column 5 (ArEASSIGNED TO VENDOR) in the CUBE and underlying table have the same data type and length VARCHAR(4000). Why is the process failing still?
    SELECT [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[compliancejoin]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_0],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[mowingsector]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_1],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseclosedflag]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_2],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casehasvendorinfo]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_3],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[mowingstatus]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_4],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[assignedtovendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_5],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reassignedtovendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_6],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[currentvendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_7],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[invoiced]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSInvoiced0_8],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[invoicedstatus]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_9],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casecloseddateid]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_10],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[assignedtovendordateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_11],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reassigneddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_12],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[currentassigneddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_13],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[mowingduedateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_14],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[vendormoweddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_15],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[captypename] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_16],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casetype] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSCaseType0_17],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casenumbersubgroup] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_18],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casetownship] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_19],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casestatus] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSCaseStatus0_20],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseopendateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_21],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casereferredtolegalflag]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_22],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casemacinitiatedflag] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_23],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseconversionstatusdesc]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_24],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reasonforinvestigation] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_25],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[investigationopendateid]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_26],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[receiveddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_27],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[assigned_department_staff]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_28],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseinitiator] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_29],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[vendorinvoiceamount] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_30],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[inspection_result] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_31],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reason_for_complaint] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_32],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[vendor_action] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_33],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[complaint_source] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_34],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[contractcompliancevendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_35],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[invoicedstatusdateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_36],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[date_of_complaint_id] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_37],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[date_of_inspection_id] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_38],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casenumber] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSCaseNumber0_39],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[parcelnumber] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_40],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[row_index] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSROW_INDEX0_41]
    FROM (SELECT CASE Isnumeric(
    accela_staging.dbo.fact_highweedsandgrassdetails.vendorinvoiceamount)
    WHEN 1 THEN Cast(
    fact_highweedsandgrassdetails.vendorinvoiceamount AS
    VARCHAR(
    10))
    END AS
    Total_Dollar_Amount,
    fact_highweedsandgrassdetails.casenumber,
    fact_highweedsandgrassdetails.row_index,
    fact_highweedsandgrassdetails.mowingsector,
    fact_highweedsandgrassdetails.caseclosedflag,
    fact_highweedsandgrassdetails.casecloseddateid,
    fact_highweedsandgrassdetails.maccomments,
    fact_highweedsandgrassdetails.lastfeeinvoicedateid,
    fact_highweedsandgrassdetails.casehasvendorinfo,
    fact_highweedsandgrassdetails.mowingstatus,
    fact_highweedsandgrassdetails.receiveddateid,
    fact_highweedsandgrassdetails.assignedtovendordateid,
    fact_highweedsandgrassdetails.assignedtovendor,
    fact_highweedsandgrassdetails.reassigneddateid,
    fact_highweedsandgrassdetails.reassignedtovendor,
    fact_highweedsandgrassdetails.currentvendor,
    fact_highweedsandgrassdetails.currentassigneddateid,
    fact_highweedsandgrassdetails.mowingduedateid,
    fact_highweedsandgrassdetails.vendormoweddateid,
    fact_highweedsandgrassdetails.invoiced,
    fact_highweedsandgrassdetails.invoicedstatus,
    fact_highweedsandgrassdetails.invoicedstatusdateid,
    fact_highweedsandgrassdetails.vendorinvoicenumber,
    fact_highweedsandgrassdetails.vendorcomments,
    fact_casedetails.captypename,
    fact_casedetails.casenumbersubgroup,
    fact_casedetails.casetype,
    fact_casedetails.township AS
    CaseTownship,
    fact_casedetails.casestatus,
    fact_casedetails.caseopendateid,
    fact_casedetails.referredtolegalflag AS
    CaseReferredToLegalFlag,
    fact_casedetails.macinitiatedflag AS
    CaseMACInitiatedFlag,
    fact_casedetails.conversionstatusdesc AS
    CaseConversionStatusDesc,
    fact_casedetails.assignedstaff AS
    CaseAssignedStaff,
    fact_casedetails.completedstaff AS
    CaseCompletedStaff,
    fact_casedetails.closedbystaff AS
    CaseClosedByStaff,
    fact_casedetails.initiator AS
    CaseInitiator,
    fact_casedetails.reasonforinvestigation,
    fact_casedetails.primaryaddress,
    fact_casedetails.parcelnumber,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE (fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.recordimportdatetime)) AS
    DECIMAL(6, 2))
    AS
    DaysOpen,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE
    (fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime)) AS
    NUMERIC(9, 2))
    * 24 AS
    HoursOpenToMow,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.assignedtovendordate,
    COALESCE
    (fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime)) AS
    NUMERIC(9, 2))
    * 24 AS
    HoursAssignedToMow,
    CASE
    WHEN mowingstatus = 'Mowed'
    OR mowingstatus = 'Closed' THEN 1
    ELSE 0
    END AS
    NumberComplete,
    fact_highweedsandgrassdetails.recordimportdatetime,
    fact_casedetails.macsiebelnumber,
    fact_highweedsandgrassdetails.mowingduedate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.lastfeeinvoicedate,
    fact_highweedsandgrassdetails.investigationopendatetime,
    fact_highweedsandgrassdetails.investigationopendate,
    fact_highweedsandgrassdetails.investigationopendateid,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    ( vendormoweddatetime IS NOT NULL
    AND vendormoweddatetime <=
    fact_highweedsandgrassdetails.casecloseddate ) THEN
    fact_highweedsandgrassdetails.vendormoweddatetime
    ELSE
    CASE
    WHEN (
    fact_highweedsandgrassdetails.casecloseddate IS
    NOT NULL
    AND fact_highweedsandgrassdetails.casecloseddate
    <=
    fact_highweedsandgrassdetails.recordimportdatetime )
    THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(9, 2)) * 24 AS
    AbatementDurationHoursOLD,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate) IS
    NOT NULL THEN COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate)
    ELSE
    CASE
    WHEN ( fact_highweedsandgrassdetails.casecloseddate IS NOT NULL
    AND fact_highweedsandgrassdetails.casecloseddate <=
    fact_highweedsandgrassdetails.recordimportdatetime ) THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(9, 2)) * 24 AS
    AbatementDurationHours,
    fact_casedetails.assigneddepartment,
    COALESCE (fact_casedetails.assignedstaff, '[null]')
    + '/'
    + COALESCE (fact_casedetails.assigneddepartment, '[null]') AS
    Assigned_Department_Staff,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.receiveddatetime,
    fact_highweedsandgrassdetails.assignedtovendordate,
    fact_highweedsandgrassdetails.vendorinvoiceamount,
    fact_highweedsandgrassdetails.invoicedstatusdate,
    fact_highweedsandgrassdetails.complaint_source,
    fact_highweedsandgrassdetails.inspection_result,
    fact_highweedsandgrassdetails.reason_for_complaint,
    fact_highweedsandgrassdetails.contractcompliancevendor,
    fact_highweedsandgrassdetails.vendor_action,
    fact_highweedsandgrassdetails.date_of_complaint_id,
    fact_highweedsandgrassdetails.date_of_inspection_id,
    CONVERT(INT, Replace(Replace(fact_highweedsandgrassdetails.casenumber,
    'HWG', 0)
    , '-', 0)) AS compliancejoin,
    fact_highweedsandgrassdetails.maccomments AS Expr1,
    dbo.dim_highweedscensustracts.b1_census_tract
    FROM dbo.fact_highweedsandgrassdetails
    INNER JOIN dbo.fact_casedetails
    ON fact_highweedsandgrassdetails.casenumber =
    fact_casedetails.casenumber
    INNER JOIN dbo.dim_highweedscensustracts
    ON fact_highweedsandgrassdetails.casenumber =
    dbo.dim_highweedscensustracts.casenumber
    GROUP BY fact_highweedsandgrassdetails.casenumber,
    fact_highweedsandgrassdetails.row_index,
    fact_highweedsandgrassdetails.mowingsector,
    fact_highweedsandgrassdetails.caseclosedflag,
    fact_highweedsandgrassdetails.casecloseddateid,
    fact_highweedsandgrassdetails.maccomments,
    fact_highweedsandgrassdetails.lastfeeinvoicedateid,
    fact_highweedsandgrassdetails.casehasvendorinfo,
    fact_highweedsandgrassdetails.mowingstatus,
    fact_highweedsandgrassdetails.receiveddateid,
    fact_highweedsandgrassdetails.assignedtovendordateid,
    fact_highweedsandgrassdetails.assignedtovendor,
    fact_highweedsandgrassdetails.reassigneddateid,
    fact_highweedsandgrassdetails.reassignedtovendor,
    fact_highweedsandgrassdetails.currentvendor,
    fact_highweedsandgrassdetails.currentassigneddateid,
    fact_highweedsandgrassdetails.mowingduedateid,
    fact_highweedsandgrassdetails.vendormoweddateid,
    fact_highweedsandgrassdetails.invoiced,
    fact_highweedsandgrassdetails.invoicedstatus,
    fact_highweedsandgrassdetails.invoicedstatusdateid,
    fact_highweedsandgrassdetails.vendorinvoicenumber,
    fact_highweedsandgrassdetails.vendorcomments,
    fact_casedetails.captypename,
    fact_casedetails.casenumbersubgroup,
    fact_casedetails.casetype,
    fact_casedetails.township,
    fact_casedetails.casestatus,
    fact_casedetails.caseopendateid,
    fact_casedetails.referredtolegalflag,
    fact_casedetails.macinitiatedflag,
    fact_casedetails.conversionstatusdesc,
    fact_casedetails.assignedstaff,
    fact_casedetails.completedstaff,
    fact_casedetails.closedbystaff,
    fact_casedetails.initiator,
    fact_casedetails.reasonforinvestigation,
    fact_casedetails.primaryaddress,
    fact_casedetails.parcelnumber,
    fact_highweedsandgrassdetails.vendormoweddatetime,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE (
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.recordimportdatetime))
    AS
    NUMERIC(9, 2)),
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE (
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime))
    AS
    NUMERIC(9, 2)),
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.assignedtovendordate,
    COALESCE (
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime))
    AS
    NUMERIC(9, 2)),
    CASE
    WHEN mowingstatus = 'Mowed'
    OR mowingstatus = 'Closed' THEN 1
    ELSE 0
    END,
    fact_highweedsandgrassdetails.recordimportdatetime,
    fact_casedetails.macsiebelnumber,
    fact_highweedsandgrassdetails.mowingduedate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.lastfeeinvoicedate,
    fact_highweedsandgrassdetails.investigationopendatetime,
    fact_highweedsandgrassdetails.investigationopendate,
    fact_highweedsandgrassdetails.investigationopendateid,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    ( vendormoweddatetime IS NOT NULL
    AND vendormoweddatetime <=
    fact_highweedsandgrassdetails.casecloseddate ) THEN
    fact_highweedsandgrassdetails.vendormoweddatetime
    ELSE
    CASE
    WHEN (
    fact_highweedsandgrassdetails.casecloseddate
    IS NOT NULL
    AND
    fact_highweedsandgrassdetails.casecloseddate <=
    fact_highweedsandgrassdetails.recordimportdatetime )
    THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE
    fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(9, 2)),
    Cast(Datediff(ss,
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate) IS
    NOT NULL THEN COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate)
    ELSE
    CASE
    WHEN
    ( fact_highweedsandgrassdetails.casecloseddate IS NOT NULL
    AND fact_highweedsandgrassdetails.casecloseddate <=
    fact_highweedsandgrassdetails.recordimportdatetime ) THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(18, 2)) * 60,
    fact_casedetails.assigneddepartment,
    COALESCE (fact_casedetails.assignedstaff, '[null]')
    + '/'
    + COALESCE (fact_casedetails.assigneddepartment, '[null]'),
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.receiveddatetime,
    fact_highweedsandgrassdetails.assignedtovendordate,
    fact_highweedsandgrassdetails.vendorinvoiceamount,
    fact_highweedsandgrassdetails.invoicedstatusdate,
    fact_highweedsandgrassdetails.complaint_source,
    fact_highweedsandgrassdetails.inspection_result,
    fact_highweedsandgrassdetails.reason_for_complaint,
    fact_highweedsandgrassdetails.contractcompliancevendor,
    fact_highweedsandgrassdetails.vendor_action,
    fact_highweedsandgrassdetails.date_of_complaint_id,
    fact_highweedsandgrassdetails.date_of_inspection_id,
    CONVERT(INT, Replace(
    Replace(fact_highweedsandgrassdetails.casenumber, 'HWG', 0)
    , '-', 0)),
    fact_highweedsandgrassdetails.maccomments,
    dbo.dim_highweedscensustracts.b1_census_tract) AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS]
    ORDER BY [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[compliancejoin]
    ASC
    SV

    I just counted the columns from the top:
    1) compliancejoin, 2) mowingsector, 3) caseclosedflag, 4) casehasvendorinfo, 5) mowingstatus, 6) assignedtovendor.
    I see now that your subject line talks about column 6, but you say column 5 in body of your original post.
    I don't know anything about cubes, but apparently there is some mapping problem when you run it from SSAS. (I assume it is SSAS, a part of the product I'm entirely ignorant of.) I figured that if you had got tripped by the zero-based numbering, you
    might be staring on the wrong column.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Errors in the back-end database access module. OLE DB was unable to convert a value to the data type requested for column 6.

    Hi All,
    I'm still struggling with the same cube and this is my 3rd post and once i fix some thing the other breaks. Please forgive me. When i process my cube i'm getting the error:
    Errors in the back-end database access module. OLE DB was unable to convert a value to the data type requested for column 5.
    My question is when the error says column 5 (is it the column 5 in the DSV?) or is it the column 5 in the DIMENSION list?
    My next question is the DSV Query works perfectly fine , so why this error in cube? This is what i have in the query in DSV.
    Please need help. In the below query both the column 5 (ArEASSIGNED TO VENDOR) in the CUBE and underlying table have the same data type and length VARCHAR(4000). Why is the process failing still?
    SELECT [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[compliancejoin]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_0],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[mowingsector]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_1],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseclosedflag]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_2],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casehasvendorinfo]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_3],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[mowingstatus]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_4],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[assignedtovendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_5],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reassignedtovendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_6],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[currentvendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_7],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[invoiced]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSInvoiced0_8],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[invoicedstatus]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_9],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casecloseddateid]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_10],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[assignedtovendordateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_11],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reassigneddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_12],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[currentassigneddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_13],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[mowingduedateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_14],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[vendormoweddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_15],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[captypename] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_16],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casetype] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSCaseType0_17],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casenumbersubgroup] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_18],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casetownship] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_19],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casestatus] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSCaseStatus0_20],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseopendateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_21],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casereferredtolegalflag]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_22],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casemacinitiatedflag] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_23],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseconversionstatusdesc]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_24],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reasonforinvestigation] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_25],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[investigationopendateid]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_26],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[receiveddateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_27],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[assigned_department_staff]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_28],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[caseinitiator] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_29],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[vendorinvoiceamount] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_30],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[inspection_result] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_31],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[reason_for_complaint] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_32],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[vendor_action] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_33],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[complaint_source] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_34],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[contractcompliancevendor]
    AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_35],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[invoicedstatusdateid] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_36],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[date_of_complaint_id] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_37],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[date_of_inspection_id] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_38],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[casenumber] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSCaseNumber0_39],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[parcelnumber] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS0_40],
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[row_index] AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTSROW_INDEX0_41]
    FROM (SELECT CASE Isnumeric(
    accela_staging.dbo.fact_highweedsandgrassdetails.vendorinvoiceamount)
    WHEN 1 THEN Cast(
    fact_highweedsandgrassdetails.vendorinvoiceamount AS
    VARCHAR(
    10))
    END AS
    Total_Dollar_Amount,
    fact_highweedsandgrassdetails.casenumber,
    fact_highweedsandgrassdetails.row_index,
    fact_highweedsandgrassdetails.mowingsector,
    fact_highweedsandgrassdetails.caseclosedflag,
    fact_highweedsandgrassdetails.casecloseddateid,
    fact_highweedsandgrassdetails.maccomments,
    fact_highweedsandgrassdetails.lastfeeinvoicedateid,
    fact_highweedsandgrassdetails.casehasvendorinfo,
    fact_highweedsandgrassdetails.mowingstatus,
    fact_highweedsandgrassdetails.receiveddateid,
    fact_highweedsandgrassdetails.assignedtovendordateid,
    fact_highweedsandgrassdetails.assignedtovendor,
    fact_highweedsandgrassdetails.reassigneddateid,
    fact_highweedsandgrassdetails.reassignedtovendor,
    fact_highweedsandgrassdetails.currentvendor,
    fact_highweedsandgrassdetails.currentassigneddateid,
    fact_highweedsandgrassdetails.mowingduedateid,
    fact_highweedsandgrassdetails.vendormoweddateid,
    fact_highweedsandgrassdetails.invoiced,
    fact_highweedsandgrassdetails.invoicedstatus,
    fact_highweedsandgrassdetails.invoicedstatusdateid,
    fact_highweedsandgrassdetails.vendorinvoicenumber,
    fact_highweedsandgrassdetails.vendorcomments,
    fact_casedetails.captypename,
    fact_casedetails.casenumbersubgroup,
    fact_casedetails.casetype,
    fact_casedetails.township AS
    CaseTownship,
    fact_casedetails.casestatus,
    fact_casedetails.caseopendateid,
    fact_casedetails.referredtolegalflag AS
    CaseReferredToLegalFlag,
    fact_casedetails.macinitiatedflag AS
    CaseMACInitiatedFlag,
    fact_casedetails.conversionstatusdesc AS
    CaseConversionStatusDesc,
    fact_casedetails.assignedstaff AS
    CaseAssignedStaff,
    fact_casedetails.completedstaff AS
    CaseCompletedStaff,
    fact_casedetails.closedbystaff AS
    CaseClosedByStaff,
    fact_casedetails.initiator AS
    CaseInitiator,
    fact_casedetails.reasonforinvestigation,
    fact_casedetails.primaryaddress,
    fact_casedetails.parcelnumber,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE (fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.recordimportdatetime)) AS
    DECIMAL(6, 2))
    AS
    DaysOpen,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE
    (fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime)) AS
    NUMERIC(9, 2))
    * 24 AS
    HoursOpenToMow,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.assignedtovendordate,
    COALESCE
    (fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime)) AS
    NUMERIC(9, 2))
    * 24 AS
    HoursAssignedToMow,
    CASE
    WHEN mowingstatus = 'Mowed'
    OR mowingstatus = 'Closed' THEN 1
    ELSE 0
    END AS
    NumberComplete,
    fact_highweedsandgrassdetails.recordimportdatetime,
    fact_casedetails.macsiebelnumber,
    fact_highweedsandgrassdetails.mowingduedate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.lastfeeinvoicedate,
    fact_highweedsandgrassdetails.investigationopendatetime,
    fact_highweedsandgrassdetails.investigationopendate,
    fact_highweedsandgrassdetails.investigationopendateid,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    ( vendormoweddatetime IS NOT NULL
    AND vendormoweddatetime <=
    fact_highweedsandgrassdetails.casecloseddate ) THEN
    fact_highweedsandgrassdetails.vendormoweddatetime
    ELSE
    CASE
    WHEN (
    fact_highweedsandgrassdetails.casecloseddate IS
    NOT NULL
    AND fact_highweedsandgrassdetails.casecloseddate
    <=
    fact_highweedsandgrassdetails.recordimportdatetime )
    THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(9, 2)) * 24 AS
    AbatementDurationHoursOLD,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate) IS
    NOT NULL THEN COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate)
    ELSE
    CASE
    WHEN ( fact_highweedsandgrassdetails.casecloseddate IS NOT NULL
    AND fact_highweedsandgrassdetails.casecloseddate <=
    fact_highweedsandgrassdetails.recordimportdatetime ) THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(9, 2)) * 24 AS
    AbatementDurationHours,
    fact_casedetails.assigneddepartment,
    COALESCE (fact_casedetails.assignedstaff, '[null]')
    + '/'
    + COALESCE (fact_casedetails.assigneddepartment, '[null]') AS
    Assigned_Department_Staff,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.receiveddatetime,
    fact_highweedsandgrassdetails.assignedtovendordate,
    fact_highweedsandgrassdetails.vendorinvoiceamount,
    fact_highweedsandgrassdetails.invoicedstatusdate,
    fact_highweedsandgrassdetails.complaint_source,
    fact_highweedsandgrassdetails.inspection_result,
    fact_highweedsandgrassdetails.reason_for_complaint,
    fact_highweedsandgrassdetails.contractcompliancevendor,
    fact_highweedsandgrassdetails.vendor_action,
    fact_highweedsandgrassdetails.date_of_complaint_id,
    fact_highweedsandgrassdetails.date_of_inspection_id,
    CONVERT(INT, Replace(Replace(fact_highweedsandgrassdetails.casenumber,
    'HWG', 0)
    , '-', 0)) AS compliancejoin,
    fact_highweedsandgrassdetails.maccomments AS Expr1,
    dbo.dim_highweedscensustracts.b1_census_tract
    FROM dbo.fact_highweedsandgrassdetails
    INNER JOIN dbo.fact_casedetails
    ON fact_highweedsandgrassdetails.casenumber =
    fact_casedetails.casenumber
    INNER JOIN dbo.dim_highweedscensustracts
    ON fact_highweedsandgrassdetails.casenumber =
    dbo.dim_highweedscensustracts.casenumber
    GROUP BY fact_highweedsandgrassdetails.casenumber,
    fact_highweedsandgrassdetails.row_index,
    fact_highweedsandgrassdetails.mowingsector,
    fact_highweedsandgrassdetails.caseclosedflag,
    fact_highweedsandgrassdetails.casecloseddateid,
    fact_highweedsandgrassdetails.maccomments,
    fact_highweedsandgrassdetails.lastfeeinvoicedateid,
    fact_highweedsandgrassdetails.casehasvendorinfo,
    fact_highweedsandgrassdetails.mowingstatus,
    fact_highweedsandgrassdetails.receiveddateid,
    fact_highweedsandgrassdetails.assignedtovendordateid,
    fact_highweedsandgrassdetails.assignedtovendor,
    fact_highweedsandgrassdetails.reassigneddateid,
    fact_highweedsandgrassdetails.reassignedtovendor,
    fact_highweedsandgrassdetails.currentvendor,
    fact_highweedsandgrassdetails.currentassigneddateid,
    fact_highweedsandgrassdetails.mowingduedateid,
    fact_highweedsandgrassdetails.vendormoweddateid,
    fact_highweedsandgrassdetails.invoiced,
    fact_highweedsandgrassdetails.invoicedstatus,
    fact_highweedsandgrassdetails.invoicedstatusdateid,
    fact_highweedsandgrassdetails.vendorinvoicenumber,
    fact_highweedsandgrassdetails.vendorcomments,
    fact_casedetails.captypename,
    fact_casedetails.casenumbersubgroup,
    fact_casedetails.casetype,
    fact_casedetails.township,
    fact_casedetails.casestatus,
    fact_casedetails.caseopendateid,
    fact_casedetails.referredtolegalflag,
    fact_casedetails.macinitiatedflag,
    fact_casedetails.conversionstatusdesc,
    fact_casedetails.assignedstaff,
    fact_casedetails.completedstaff,
    fact_casedetails.closedbystaff,
    fact_casedetails.initiator,
    fact_casedetails.reasonforinvestigation,
    fact_casedetails.primaryaddress,
    fact_casedetails.parcelnumber,
    fact_highweedsandgrassdetails.vendormoweddatetime,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE (
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.recordimportdatetime))
    AS
    NUMERIC(9, 2)),
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.receiveddatetime,
    COALESCE (
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime))
    AS
    NUMERIC(9, 2)),
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.assignedtovendordate,
    COALESCE (
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.recordimportdatetime))
    AS
    NUMERIC(9, 2)),
    CASE
    WHEN mowingstatus = 'Mowed'
    OR mowingstatus = 'Closed' THEN 1
    ELSE 0
    END,
    fact_highweedsandgrassdetails.recordimportdatetime,
    fact_casedetails.macsiebelnumber,
    fact_highweedsandgrassdetails.mowingduedate,
    fact_highweedsandgrassdetails.vendormoweddate,
    fact_highweedsandgrassdetails.lastfeeinvoicedate,
    fact_highweedsandgrassdetails.investigationopendatetime,
    fact_highweedsandgrassdetails.investigationopendate,
    fact_highweedsandgrassdetails.investigationopendateid,
    Cast(Datediff([day],
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    ( vendormoweddatetime IS NOT NULL
    AND vendormoweddatetime <=
    fact_highweedsandgrassdetails.casecloseddate ) THEN
    fact_highweedsandgrassdetails.vendormoweddatetime
    ELSE
    CASE
    WHEN (
    fact_highweedsandgrassdetails.casecloseddate
    IS NOT NULL
    AND
    fact_highweedsandgrassdetails.casecloseddate <=
    fact_highweedsandgrassdetails.recordimportdatetime )
    THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE
    fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(9, 2)),
    Cast(Datediff(ss,
    fact_highweedsandgrassdetails.investigationopendatetime,
    CASE
    WHEN
    COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate) IS
    NOT NULL THEN COALESCE (vendormoweddatetime,
    fact_highweedsandgrassdetails.casecloseddate)
    ELSE
    CASE
    WHEN
    ( fact_highweedsandgrassdetails.casecloseddate IS NOT NULL
    AND fact_highweedsandgrassdetails.casecloseddate <=
    fact_highweedsandgrassdetails.recordimportdatetime ) THEN
    fact_highweedsandgrassdetails.casecloseddate
    ELSE fact_highweedsandgrassdetails.recordimportdatetime
    END
    END) AS NUMERIC(18, 2)) * 60,
    fact_casedetails.assigneddepartment,
    COALESCE (fact_casedetails.assignedstaff, '[null]')
    + '/'
    + COALESCE (fact_casedetails.assigneddepartment, '[null]'),
    fact_highweedsandgrassdetails.casecloseddate,
    fact_highweedsandgrassdetails.receiveddatetime,
    fact_highweedsandgrassdetails.assignedtovendordate,
    fact_highweedsandgrassdetails.vendorinvoiceamount,
    fact_highweedsandgrassdetails.invoicedstatusdate,
    fact_highweedsandgrassdetails.complaint_source,
    fact_highweedsandgrassdetails.inspection_result,
    fact_highweedsandgrassdetails.reason_for_complaint,
    fact_highweedsandgrassdetails.contractcompliancevendor,
    fact_highweedsandgrassdetails.vendor_action,
    fact_highweedsandgrassdetails.date_of_complaint_id,
    fact_highweedsandgrassdetails.date_of_inspection_id,
    CONVERT(INT, Replace(
    Replace(fact_highweedsandgrassdetails.casenumber, 'HWG', 0)
    , '-', 0)),
    fact_highweedsandgrassdetails.maccomments,
    dbo.dim_highweedscensustracts.b1_census_tract) AS
    [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS]
    ORDER BY [High_x0020_Weeds_x0020_and_x0020_Grass_x0020_FACTS].[compliancejoin]
    ASC
    SV

    I just counted the columns from the top:
    1) compliancejoin, 2) mowingsector, 3) caseclosedflag, 4) casehasvendorinfo, 5) mowingstatus, 6) assignedtovendor.
    I see now that your subject line talks about column 6, but you say column 5 in body of your original post.
    I don't know anything about cubes, but apparently there is some mapping problem when you run it from SSAS. (I assume it is SSAS, a part of the product I'm entirely ignorant of.) I figured that if you had got tripped by the zero-based numbering, you
    might be staring on the wrong column.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Crystal Data Conversion Issue (Error converting data type varchar to datetime)

    Hi,
    I can run stored procedure without error in SQL Server using my personal credentials as well as database credentials.
    I can also run Crystal Report after connecting to Stored procedure without error on my desktop using my personal credentials as well as database credentials.
    But when I upload the crystal report in BOBJDEV and when I run using database credentials report fails saying that "Error in File ~tmp1d1480b8e70fd90.rpt: Unable to connect: incorrect log on parameters. Details: [Database Vendor Code: 18456 ]" but I can run the crystal report successfully on BOBJDEV using my personal credentials.
    I googled (Data Conversion Error Message) about this issue & lot of people asked to do "Verify Database" in Crystal Report. So I did that, but when I do it I am getting a error message like this:
    Error converting data type varchar to datetime.
    Where do you think the error might be occurring? Did anyone faced this kind of issue before? If so, how to resolve it?
    (FYI, I am using Crystal Reports 2008, & for stored procedure I have used SSMS 2012 )
    Please help me with this issue.
    Thanks & Regards.
    Naveen.

    hello Naveen,
    since the report works fine in the cr designer / desktop, we need to figure out where you should post this question.
    by bobjdev do you mean businessobjects enterprise or crystal reports server? if so please post this question to the bi platform space.
    -jamie

Maybe you are looking for