Data type in column definition

Hi,
I create a table with column called "Direction of Travel code ".
The travel codes in the functional spec are numbers.
In the column definition which one is efficient to define the data type as number or varchar?
Code
1      
2      
3      
4      
5      
6      
7      
8      
9      
0

tijmen wrote:
Tubby wrote:
And then when you issue a query and ask for travel codes 2 through 10 the CBO can't determine that there are 8 values (cardinality wise) because you're not storing the data type in the format you should be storing it as. Statistics? Perhaps even histograms?
Simple testcase:
create table t1(x number(1)) as select mod(rownum, 10) from all_objects where rownum <= 100;
create table t2(x varchar2(1)) as select to_char(mod(rownum, 10)) from all_objects where rownum <= 100;
exec dbms_stats.gather_table_stats(user, 'T1', method_opt => 'FOR ALL COLUMNS SIZE 1');
exec dbms_stats.gather_table_stats(user, 'T2', method_opt => 'FOR ALL COLUMNS SIZE 1');Tried a few simple statements against those (where x = N, where x between N and M), using either literals or bind values. I didn't see any difference in the explain plan...
Not to mention what happens when someone decides to put an "A" in your travel code that should be only numbers, it will eventually happen.Yes, and that's an input error that should be caught by a database constraint (and possibly even before that by the application). Who knows, the codes 0 and 5 might become obsolete as well with changing business rules. Your number datatype is not going to protest when someone still uses them. Hey, maybe even tomorrow someone from the business will come in and demand for the codes 'a' to 'd' to be created. Histograms, application code and database constraints (which all have side effects and add complexity to the system) as opposed to declaring the data type as a NUMBER (which it is). Doesn't seem like a really good argument for intentionally choosing the wrong data type. Well, at least you didn't suggest a trigger in there as well.
>
I'm not saying you should use a char type instead of a number. I'm saying I doubt there's much difference as far as the database is concerned, and I would base the decision on how it works out on the application and business side.As you've found out, the OP stated the functional specs define this as a number. IF in the future the specs change and a business analyst mandates that this support characters as well then the data type gets changed to support the new requirement, no database constraints to remove, no application code to remove, etc...

Similar Messages

  • Maximum character limits for data types under the Definition tab in Outbound Dialer Import Rule configuration.

    Hello,
    We're running an outbound SIP dialer under UCCE 8.5(4). The need has come up to allow more than 10 characters for the first name field under the Definition tab in the import rule configuration section, however, it seems that 10 characters is the upper limit. The reason for wanting to do this is that we're seeing a large number of calls fail to import because the members first name is larger than 10 characters, for example, an import record with a first name of Maximillian will fail. The idea was presented to simply shorten the member name in the event it exceeds 10 characters. However, the concern is that this will cause the agent to mispronounce the members name when they are connected on the phone during initial greeting. For example, Maximillian now becomes Maximillia. Has anyone ever run into the need to do this? Is there a known workaround? Any ideas would be greatly appreciated.
    Regards,
    -Mike

    Mike,
    Are you certain that you're trying to increase the value of the correct field? When you go into your Import Rule > Definition tab > highlight the FirstName field name and click Modify... What you should see for Field length is 1-255. You can easily increase the number of character to over 10.

  • Target Site Column Data Type are Undefined Status

    Hi,
    When I created the mapping,there was a error about data type. Data types of columns were not changed, and datatypes status are undefined.
    I take this error as below;
    com.sunopsis.tools.core.exception.SnpsSimpleMessageException: The source datatype is null for the column: <ColumnName>, and the technology: Hyperion Planinng
    ODI 10.1.3.5
    SQL Server 2005
    Hyperion Planning 11
    How can I changed the datatypes? Is there a problem with hyperion planning site? How can assign the data types?
    thanks.

    First of all the error you posted
    "The source datatype is null for the column: <ColumnName>, and the technology: Hyperion Planinng"
    Which points to Hyperion planning....
    Anyway, if as you say it is file to SQL Server, check the DataStore for the reversed SQL server table, check the columns have a Type assigned to them
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Column cannot convert between unicode and non-unicode string data types

    I am converting SSIS jobs from SQL Server 2005 running on a Windows 2003 server to 2008R2 running on a Windows 2008 server.&nbsp; I have a dataflow with an OLE DB Source which is selecting from an Oracle view.&nbsp; This of course worked fine in
    2005.&nbsp;&nbsp; This OLE DB Source will not even read the data from Oracle without the error "Column "UWI" cannot convert between unicode and non-unicode.  The select is:
    SELECT SOME_VIEW.UWI AS UWI,
                 CAST(SOME_VIEW.OIL_NET AS NUMERIC(9,8)) AS OIL_NET
    FROM SOME_SCHEMA.SOME_VIEW
    WHERE OIL_NET IS NOT NULL AND UWI IS NOT NULL
    ORDER BY UWI
    When I do "Show Advanced Editor" on this component, in the Input and Output Properties, I show the OLE DB External Column as DT_STR length 40 for the UWI column and for the Output Columns I see the UWI as the same DT_STR.
    How can I get past this?  I have tried doing a cast...cast(SOME_VIEW.UWI AS VARCHAR(40)) AS UWI and this gives the same error.  The column in Oracle is a varchar2(40).
    Any help is greatly appreciated.  Thanks.

    Please check the data type for UWI using advanced editor for Oledb Source under
    external columns and output columns. Are the data types same?
    If not, try changing the data type (underoutput columns) same as data type shown under
    external columns
    Nitesh Rai- Please mark the post as answered if it answers your question

  • 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.

  • Programatic import can't clear out a property of data-type="set"

    Our catalog repository has a item-descriptor for a "sku" that has a property named "modelProfiles" which is a data-type="set". This allow our SKUs to have a one-to-many relationship with ModelProfile components.
    We programmatically import and update these SKUs through gsa-xml files. This usually works great, but the problem I am having is that there appears to be no way to "clear out" the set that a given SKU is connected to. I can add to the set, I can reduce the members of the set, but when I try to make an individual SKU's set empty, the BCC project shows the related SKU as unchanged (meaning that it still has all of its SKUs).
    How can I clear out a property of type "set" using gsa-xml like...
    <pre>
    <update-item item-descriptor="sku" id="sku160005">
    <set-property name="modelProfiles" value="__NULL__"></set-property>
    </update-item>
    </pre>
    Our custom calalog.xml entry for this mess looks like...
    <pre>
    <item-descriptor name="sku">
    <table
    name="the_sku_modelprofile"
    type="multi"
    id-column-name="sku_id" >
    <property
    name="modelProfiles"
    data-type="set"
    column-name="model_profile_id"
    component-item-type="ModelProfile"
    display-name="Model Profile"
    category-resource="theBasics"
    required="false" >
    <attribute
    name="resourceBundle"
    value="the.commerce.ProductCatalogTemplateResources"/>
    <attribute name="propertySortPriority" value="-55"/>
    </property>
    </table>
    </item-descriptor>
    </pre>
    As always, any help is greatly appreciated.

    You just need
    <update-item item-descriptor="sku" id="sku160005">
    <set-property name="modelProfiles" value=""></set-property>
    </update-item>

  • How to insert data in a column with uniqueidefier data type

    Guys,
    I need insert data in a column with uniqueidefier data type, when i am trying to that getting error.
    error message says: "Conversion failed when converting from a character string to uniqueidentifier."
    I have data in table a col1,col2,col3,col4 - col3,col4 has datatype as varchar and i am updating table b columns col1,col2 with table a col3 and col4.
    Please guide how to do it.

    Hi,
    Not any String can be convert to uniqueidentifier.
    1. you have to make sure u use a value which is fir to be uniqueidentifier
    2. Use convert or cast in the insert query in order to convert the string into uniqueidentifier
    insert X ... convert(uniqueidentifier, 'string which fit to be convert to uniqueidentifier')
    Please post DDL+DML for more specific help
    DDL = Data Definition Language. In our case that is, CREATE TABLE statements for your tables and other definitions that are needed to understand your tables structure and there for let us to test and reproduce the problem in our server. Without DDL no one
    can execute any query.
    How to get DDL: Right click on the table in Object Explorer and select script table as CREATE. Post these create table scripts here.
    DML = data manipulation language is a family of queries used for manipulating the data it self like: inserting, deleting and updating data. In our case we need some sample data in order to check the query and get result, so we need some indert query for
    sample data.
    If you post a "create query" for the tables and "insert query" with some sample, then we could help you without Assuming/Guessing. There is a reason that DDL is generally asked for and expected when discussing query problems - it helps
    to identify issues, clarify terminology and prevent incorrect assumptions.  Sample data also provides a common point of reference for the discussion. A script that can be used to illustrate or reproduce the issue you have, will encourage others to help.
    [Personal Site] [Blog] [Facebook]

  • Data type column size does not match size of values returned

    I've tried searching but couldn't find what I was looking for, sorry if this has been answered or is a duplicate.
    I am using the (Java) method below to get the column definitions of a table. I am doing this through an ODBC connection (using Oracle ODBC driver) and I have NO CHOICE in the matter.
    The problem I am having is that one particular column has a column size is smaller than the size of the data it purportedly holds (ie attendance_code = varchar size 3 but data value is "Absent". I suspect the data is actually a look up to situation, where my attendance_code column has a value of 'ABS' and Oracle goes and fetchs the "Absent" value.
    My issue is that the meta data returned from ODBC is the actual column definition (ie varchar(3) and not varchar2(10) for example).
    The resultset metadata has a size of 3 for the column in question, and querying the schema also yields 3 for that column.
    How do I resolve this? I do not have access to all_columns table etc. I have to do it using ODBC metadata only.
    I've tried recreating the situation using the Oracle XE DB, but as I am not familiar with Oracle, I do not know how to recreate this scenario (which would then lead me to test other options with ODBC).
    TIA.
    The select I am using is SELECT * FROM <tableName>.
    public ArrayList<SchemaColumn> getColumnsForTable(String catalog,
    String schema,
    String tableName) {
    ArrayList<SchemaColumn> columns = new ArrayList<SchemaColumn>();
    ResultSet rs = null;
    try {
    DatabaseMetaData metaData = connection.getMetaData();
    rs = metaData.getColumns(catalog, schema, tableName, "%");
    SchemaColumn column;
    while (rs.next()) {
    column = new SchemaColumn();
    column.setName(rs.getString("COLUMN_NAME"));
    column.setDataType(rs.getInt("DATA_TYPE"));
    column.setTypeName(rs.getString("TYPE_NAME"));
    column.setColumnSize(rs.getInt("COLUMN_SIZE")); <-------- this is the value that is coming back smaller than the data it actually returns
    column.setDecimalDigits(rs.getInt("DECIMAL_DIGITS"));
    column.setNumPrecisionRadix(rs.getInt("NUM_PREC_RADIX"));
    column.setNullable(rs.getInt("NULLABLE"));
    column.setRemarks(rs.getString("REMARKS"));
    column.setDefaultValue(rs.getString("COLUMN_DEF"));
    column.setSqlDataType(rs.getInt("SQL_DATA_TYPE"));
    column.setSqlDateTimeSub(rs.getInt("SQL_DATETIME_SUB"));
    column.setCharOctetLength(rs.getInt("CHAR_OCTET_LENGTH"));
    column.setOrdinalPosition(rs.getInt("ORDINAL_POSITION"));
    columns.add(column);
    } catch (Exception e) {
    Log.getLogger().error("Could not capture table schema");
    closeResultSet(rs);
    return columns;
    }

    I can't say I've ever seen a case where a column held more data than it was declared as, and would have to file that under "see it to believe it" category.
    Even if that somehow were the case, I'd expect the ODBC driver to return what the column is defined as anyway, not the data. The data changes with every row, but I'd expect the table metadata to be consistent, and refer to the table definition.
    For grins though, can you provide system.out.println output of the metadata, and also a "describe xxxx" from sqlplus if you can, where xxx is the table name?
    ie,
    while (rs.next()) {
    System.out.println("column name is " + rs.getString("COLUMN_NAME"));
    System.out.println("data type is " + rs.getInt("DATA_TYPE"));
    ..etc..
    Greg

  • Reading column data type in SSAS tabular database using adomd

    I am working on SSAS tabular database and I need to find out the column datatype. I am using ADOMD for this. So far I looked at AdomdDataReader.GetSchemaTable
    Method & looked at the below code snippet to retrive Metadata from the AdomdDataReader.
    foreach (DataRow objRow in schemaTable.Rows)
    foreach (DataColumn objColumn in schemaTable.Columns)
    Console.WriteLine(objColumn.ColumnName + " = " + objRow[objColumn]);
    Console.WriteLine();
    I wonder with only the list of columns available to me, how can I execute a query/command and utilize adomd reader to get this information?
    What is the best approach to read column metadata?

    Hi, One option that you can try is to use AMO. Here is a sample code that connects to multi-dimensional model.
    http://sqlblogcasts.com/blogs/drjohn/archive/2012/03/15/ssas-utility-to-check-you-have-the-correct-data-types-and-sizes-in-your-cube-definition.aspx
    You will have to change few things to make it work for tabular model. Sorry, I did not try myself but I hope this will give you some ideas.
    // get DSV - this code assumes only one DSV in cube definition
    AMO.DataSourceView
    dsv = olapDatabase.DataSourceViews[0];
    foreach (AMO.Dimension
    dim in olapDatabase.Dimensions)
     foreach (AMO.DimensionAttribute
    attr in dim.Attributes)
     foreach (AMO.DataItem
    dItem in attr.KeyColumns)
         AddAttributeDataItem(dtCubeDataTypes,
    "Key", dsv, attr, dItem);
    AMO.DataItem contains column size and data type when connected to a tabular database.

  • Join columns of different data types

    Can i join two columns of different data types in a single statement. Is there any cast or convert statement
    SELECT B~PARTNER AS RESP_GROUP
    FROM BUT000 AS B
    INNER JOIN CRMV_LINKPARTNER AS C ON BPARTNER_GUID = CPARTNER_NO.
    Here PARTNER_GUID is Raw 16 and PARTNER_NO is Char 32, the query is not returning any rows.
    Thanks
    Akila.R

    Hi!
    Basically we can say, you can't join them, but you might try this way:
    SELECT B~PARTNER AS RESP_GROUP
    FROM BUT000 AS B
    INNER JOIN CRMV_LINKPARTNER AS C ON BPARTNER_GUID = CPARTNER_NO(16).   "add
    (16)
    Or an other version
    C~PARTNER_NO+16(16)   "depends on, where is the real number stored
    Regards
    Tamá

  • Store the value  in BLOB column data type

    Hi All,
    I have a file of about 5MB. I want to store this in BLOB column data type of a table.
    Can we compress this file to store and when we take uncompress the same...or how do we do it.
    and what is the procedure to store this....
    pls. help me
    Thanks,
    Naresh

    Hi skud
    i juast want to store the agent code to variable.if i did get ur point...
    Why don't u just use a simple assign statment for example...
    DECLARE
    V_VALUE  NUMBER;
    BEGIN
    V_VALUE := LC354 ; -- IF it was a value as LC354 static i mean
    -- or u could use any value
    V_VALUE := :ur_form_item_name; --- if it was dynamic
    END;That's it .
    Hope this helps...
    Regards,
    Ammatu Allah.

  • 4.0 EA1 - Data Modeler does not show columns data types correctly

    Data Modeler shows all columns data types as 'unknown'.

    Hi,
    you need to check "system data types" directory and it contents. Its default location in SQL Developer is sqldeveloper\sqldeveloper\extensions\oracle.datamodeler\types
    Check "Preferences>Data Modeler>Default system data types directory" setting. If it's empty then copy defaultdomains.xml from previous installation to directory above.
    If it's not empty then you need to copy types.xml and defaultRDBMSSites.xml from default location to directory set as "Default system data types directory".
    Philip

  • How to retrieve the data type of a column of a table?

    Hi,
    I want to retrieve the data type of a column of a table. At the moment I am querying "OCI_ATTR_DATA_TYPE" attribute but it is returning SQLT_CHR for both varchar2 and nvarchar2 data type columns. I need to distinguish between these two data types columns separately. Is there any API through which I could get the exact data type of a column i.e. "nvarchar2"?
    Thanks in advance.
    Hashim

    Hi,
    This is the Oracle C++ Call Interface (OCCI) forum - I'm not sure if you are using OCCI or OCI (Oracle Call Interface - the C interface) since you reference "OCI_ATTR_DATA_TYPE" which is more of an OCI focus than OCCI.
    In any case, you might take a look at "OCI_ATTR_CHARSET_FORM" which takes the following values:
    #define SQLCS_IMPLICIT 1     /* for CHAR, VARCHAR2, CLOB w/o a specified set */
    #define SQLCS_NCHAR    2                  /* for NCHAR, NCHAR VARYING, NCLOB */So, if you have a datatype of SQLT_CHR and OCI_ATTR_CHARSET_FORM is SQLCS_IMPLICIT then you have a varchar2 if it is SQLCS_NCHAR then you have an nvarchar2.
    If you are using OCCI and not OCI then take a look at MetaData::ATTR_DATA_TYPE and MetaData::ATTR_CHARSET_FORM which expose OCI_ATTR_DATA_TYPE and OCI_ATTR_CHARSET_FORM respectively.
    Perhaps that will get you what you want.
    Regards,
    Mark

  • 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]

Maybe you are looking for

  • How to create sales order Automatically with reference to contract?

    how to create sales order automatically through batch or online? can anyone please suggest what needs to be change in SAPMV45A program?

  • SubtitlingLanguageControl: How to turn on/off subtitles (ClosedCaption)?

    Hi, does anybody has an practice example to turn on and off programatically the subtitles? I've developed an accessibility profile manager, and this is one of the settings I wish to control. I'm trying to understand how SubtitlingLanguageControl work

  • ACS 4.0.2 Radius Authentication Setup

    Dear Experts, I am having ACS 4.0.2 in my network, which I want to use for 802.1x Radius Authentication for Clients on PEAP-MSCHAPv2 methodology. As per the documentation " EAP Authentication with RADIUS Server",  Doc ID: 44844 I have configured Netw

  • My ipod shows an unhappy face with a website name!

    Hi. I had my ipod since nov 8(birthday) and right now when I turn it on it shows an unhappy face with a website saying apple/suppot/ipod.. this was odd this was the first time it happened to me. I turn it on and if u listen closely to the ipod u can

  • Has anybody seen this issue?

    Hey guys, I've searched along the forum and seen many helpful hints and tips so thanks to all the guys whose ideas I have used and not thanked them for. Anyway down to business; My internet, for the most part, is very good. It's 802.11n, I'm using a