Solved

Dividing Product Categories into Departments

Posted on 2014-04-15
13
287 Views
Last Modified: 2014-04-15
I am trying to divide product Categories into different departments.  For Example
prod_cat_desc ='100b' which should be department 2nd Floor Standard.  Here is the code I have but it doesn't like the name 2nd floor Standard..  

case when prod_cat_desc = '100b' or prod_cat_desc ='100c' or prod_cat_desc ='100d' or prod_cat_desc ='100e' or prod_cat_desc ='100f' or prod_cat_desc ='100m' then 1 else 0 end as Department

What am I doing wrong?
0
Comment
Question by:sharris_glascol
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
13 Comments
 
LVL 35

Expert Comment

by:Dan Craciun
ID: 40001904
Can you post the full query? I see no mention of "2nd floor standard"
0
 

Author Comment

by:sharris_glascol
ID: 40001909
2nd floor standard is the name I want to give to all of those items if Prod_cat = each of those..

select ord_no,
line_no,
item_no,
CONVERT(dateTime, CONVERT(char(10), promise_dt, 101)) AS 'Promised Date',
CONVERT(dateTime, CONVERT(char(10), shipped_dt, 101)) AS 'Shipped Date',
imc.prod_cat_desc,
case when promise_dt = shipped_dt then 1 else 0 end as ontime,
case when promise_dt > shipped_dt then 1 else 0 end as early,
case when shipped_dt > promise_dt then 1 else 0 end as late,
case when prod_cat_desc = '100b' or prod_cat_desc ='100c' or prod_cat_desc ='100d' or prod_cat_desc ='100e' or prod_cat_desc ='100f' or prod_cat_desc ='100m' then 1 else 0 end as Department
from oelinhst_sql
join imcatfil_sql AS imc ON oelinhst_sql.prod_cat = imc.prod_cat
0
 
LVL 35

Expert Comment

by:Dan Craciun
ID: 40001922
You mean you want to replace 'Department' with '2nd Floor Standard' or 1 with '2nd Floor Standard'?
0
Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 

Author Comment

by:sharris_glascol
ID: 40001927
want to replace under department where it says 1 with 2nd Floor Standard
0
 
LVL 35

Expert Comment

by:Dan Craciun
ID: 40001931
Have you tried:
CASE
    WHEN prod_cat_desc = '100b' 
        OR prod_cat_desc = '100c' 
        OR prod_cat_desc = '100d' 
        OR prod_cat_desc = '100e' 
        OR prod_cat_desc = '100f' 
        OR prod_cat_desc = '100m' 
    THEN '2nd Floor Standard' 
    ELSE  '0' 
END 
AS Department

Open in new window

0
 

Author Comment

by:sharris_glascol
ID: 40001937
yes getting this error message:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value '2nd Floor Standard' to data type int.
0
 
LVL 35

Accepted Solution

by:
Dan Craciun earned 500 total points
ID: 40001940
And you put '0', not just 0? Cause if one of the values is int it will try to convert the other too.
If both are strings it should work.

If not, post some sample data so I can play with it here.
0
 

Author Closing Comment

by:sharris_glascol
ID: 40001946
thanks
0
 
LVL 35

Expert Comment

by:Dan Craciun
ID: 40001947
Glad I could help!
0
 
LVL 35

Expert Comment

by:YZlat
ID: 40001963
Did you put single quotes around 0?
0
 
LVL 37

Expert Comment

by:bbao
ID: 40001964
better post the whole SQL statement rather than the above field assigment.

BTW, the comparison on prod_cat_desc is a bit complex and hard coded. you may consider putting all possible values of prod_cat_desc in to a table, then use a SELECT statement to determine whether the prod_cat_desc is the scope. using this way, you no need to modify source code if the candidate values are changed.
0
 

Author Comment

by:sharris_glascol
ID: 40001966
yes what if I want to do something similar after the else 0??

case when prod_cat_desc = '100b' or prod_cat_desc ='100c' or prod_cat_desc ='100d' or prod_cat_desc ='100e' or prod_cat_desc ='100f' or prod_cat_desc ='100m' then '2nd Floor Standard' else case when prod_cat_desc = '099a' or prod_cat_desc = '104a' or prod_cat_desc = '103a' or prod_cat_desc = '105a' or prod_cat_desc = '107a' or prod_cat_desc = '109a' or prod_cat_desc = '108a' then 'EM Standard' else '0' end AS Department

now I am getting an error the AS is
Incorrect syntax near the keyword 'AS'
0
 
LVL 35

Expert Comment

by:Dan Craciun
ID: 40001975
You're missing an END
CASE 
	WHEN prod_cat_desc = '100b' OR prod_cat_desc ='100c' OR prod_cat_desc ='100d' OR prod_cat_desc ='100e' OR prod_cat_desc ='100f' OR prod_cat_desc ='100m' 
	THEN '2nd Floor Standard' 
	ELSE 
		CASE WHEN prod_cat_desc = '099a' OR prod_cat_desc = '104a' OR prod_cat_desc = '103a' OR prod_cat_desc = '105a' OR prod_cat_desc = '107a' OR prod_cat_desc = '109a' OR prod_cat_desc = '108a' 
			THEN 'EM Standard' 
			ELSE '0' 
		END
END 
AS Department

Open in new window

0

Featured Post

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

As a database administrator, you may need to audit your table(s) to determine whether the data types are optimal for your real-world data needs.  This Article is intended to be a resource for such a task. Preface The other day, I was involved …
Foreword This article was written many years ago, in the days when PHP supported the MySQL extension (http://php.net/manual/en/function.mysql-connect.php).  Today (http://php.net/manual/en/migration70.removed-exts-sapis.php) you would not use MySQL…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

735 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question