Solved

Dividing Product Categories into Departments

Posted on 2014-04-15
13
286 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
13 Comments
 
LVL 34

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 34

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
NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

 

Author Comment

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

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 34

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 34

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 34

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

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

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

Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Does the idea of dealing with bits scare or confuse you? Does it seem like a waste of time in an age where we all have terabytes of storage? If so, you're missing out on one of the core tools in every professional programmer's toolbox. Learn how to …
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

832 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