We help IT Professionals succeed at work.
Get Started

Oracle Group by-Case

Star79
Star79 asked
on
148 Views
Last Modified: 2016-08-09
Hello, I have the below query:
with shippedqty as (
  select sum(shipped_qty) as shpqty, source_salesitem_id
  from FACT_SHIPMENT_LINE
  where dim_org_id in (select dim_org_id from dim_org WHERE org_name like 'TSI%' AND org_name <> 'TSI FMS')
  group by source_salesitem_id
)
  select product.nsn_code,
  (CASE 
WHEN WHSE_CODE='EXE795' THEN 'TX'
WHEN WHSE_CODE='EXE796' THEN 'KUW'
WHEN WHSE_CODE<>'EXE795' AND WHSE_CODE<>'EXE796' THEN DLSF.whse_name

END) AS GAP,
        ven.vendor_name as Source,
        count(fsi.source_soline_id) as BO_num,
        sum(fsi.quantity - coalesce(sq.shpqty, 0)) as tirews_onBO, --qtyordered - qtydelivered
        min(od.THISDATE) as oldest_backorder
  from fact_salesitem fsi
  left join shippedqty sq on fsi.source_soline_id = sq.source_salesitem_id
  inner join dim_product product on fsi.dim_product_id  = product.dim_product_id
  inner join fact_pa_item pai on fsi.dim_product_id = pai.dim_product_id and pai.pa_isactive_ind = 'Y'
  inner join DIM_VENDOR ven on pai.DIM_VENDOR_ID = ven.DIM_VENDOR_ID
  left JOIN DIM_WHSE_BIN DLSF on FSI.DIM_WHSE_BIN_ID = DLSF.DIM_WHSE_BIN_ID
  INNER JOIN DIM_DATE od on FSI.CREATE_DATE_ID = od.DIM_DATE_ID
  INNER JOIN DIM_NAME_VALUES SOHS on FSI.DIM_NV_HDR_STATUS_ID = SOHS.DIM_NAME_VALUES_ID
  INNER JOIN DIM_NAME_VALUES SOLS on FSI.DIM_NV_LINE_STATUS_ID = SOLS.DIM_NAME_VALUES_ID
  WHERE FSI.DIM_ORG_ID IN (SELECT DIM_ORG_ID FROM DIM_ORG WHERE org_name like 'TSI%' AND org_name <> 'TSI FMS')
  and  SOLS.value_code in ('OH', 'BO') and  SOHS.value_code not in ('SC_AF')
  and product.nsn_code='2610-00-051-1270'
  group by product.nsn_code, DLSF.WHSE_CODE, DLSF.whse_name,ven.vendor_name;

Open in new window

When I run this Iam getting an error
character set mismatch
12704. 00000 -  "character set mismatch"
*Cause:    One of the following
           - The string operands(other than an nlsparams argument) to an
           operator or built-in function do not have the same character
           set.
           - An nlsparams operand is not in the database character set.
           - String data with character set other than the database character
           set is passed to a built-in function not expecting it.
           - The second argument to CHR() or CSCONVERT() is not CHAR_CS or
           NCHAR_CS.
           - A string expression in the VALUES clause of an INSERT statement,
           or the SET clause of an UPDATE statement, does not have the
           same character set as the column into which the value would
           be inserted.
           - A value provided in a DEFAULT clause when creating a table does
           not have the same character set as declared for the column.
           - An argument to a PL/SQL function does not conform to the
           character set requirements of the corresponding parameter.
*Action:
Error at Line: 11 Column: 55
Please guide or is there a better way to include the case statement so that I just have to do grouping on DLSF.WHSE_CODE only
Comment
Watch Question
Commented:
This problem has been solved!
Unlock 1 Answer and 9 Comments.
See Answer
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE