Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
jaybee
Yak Posting Veteran
72 Posts |
Posted - 2008-03-26 : 12:18:50
|
Hi again, I've got the rewrite below, but what I'd like to do is to add a variable that allows the client to enter a start date and finish date, and also to group the results by the categories below (Accessories/Womenswear) along with a count.SELECT i.SKU , iqs.StatusDate, ic.CategoryID, Category, CASE WHEN Category LIKE '%Jewel%' THEN 'Accessories' WHEN Category LIKE '%Beauty%' THEN 'Accessories' WHEN Category LIKE '%Accs%' THEN 'Accessories' WHEN Category LIKE '%Gift%' THEN 'Accessories' WHEN Category LIKE '%Grooming%' THEN 'Accessories' WHEN Category LIKE '%Female%Prem%Brands%' THEN 'WomensPremiumOutsideBrand' WHEN Category LIKE '%Female%Prem%OB%' THEN 'WomensPremiumOwnBrand' WHEN Category LIKE '%Female%Brand%' THEN 'WomensOutsideBrand' WHEN Category LIKE '%Female%OB%%' THEN 'WomensOwnBrand' WHEN Category LIKE '%Female%' THEN 'Womenswear' WHEN Category LIKE '%Male%Prem%Brands%' THEN 'MensPremiumOutsideBrand' WHEN Category LIKE '%Male%Prem%OB%' THEN 'MensPremiumOwnBrand' WHEN Category LIKE '%Male%Brand%' THEN 'MensOutsideBrand' WHEN Category LIKE '%Male%OB%' THEN 'MensOwnBrand' WHEN Category LIKE '%Male%' THEN 'MensOwnBrand' END AS CategoryGroupFROM InventoryQueryStatus iqsJOIN InventoryStatus [is]ON [is].StatusID = iqs.StatusIDJOIN Inventory iON i.InventoryID = iqs.InventoryIDJOIN InventoryCategory icON ic.CategoryID = i.CategoryIDWHERE iqs.StatusID = 31000and Category NOT LIKE 'Force%' |
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-03-26 : 12:56:42
|
[code]DECLARE @StartDate DATETIME, @EndDate DATETIMESELECT @StartDate = '20080301', @EndDate = '20080401'SELECT CategoryGroup, SUM(Items)FROM ( SELECT CASE WHEN Category LIKE '%Jewel%' THEN 'Accessories' WHEN Category LIKE '%Beauty%' THEN 'Accessories' WHEN Category LIKE '%Accs%' THEN 'Accessories' WHEN Category LIKE '%Gift%' THEN 'Accessories' WHEN Category LIKE '%Grooming%' THEN 'Accessories' WHEN Category LIKE '%Female%Prem%Brands%' THEN 'WomensPremiumOutsideBrand' WHEN Category LIKE '%Female%Prem%OB%' THEN 'WomensPremiumOwnBrand' WHEN Category LIKE '%Female%Brand%' THEN 'WomensOutsideBrand' WHEN Category LIKE '%Female%OB%%' THEN 'WomensOwnBrand' WHEN Category LIKE '%Female%' THEN 'Womenswear' WHEN Category LIKE '%Male%Prem%Brands%' THEN 'MensPremiumOutsideBrand' WHEN Category LIKE '%Male%Prem%OB%' THEN 'MensPremiumOwnBrand' WHEN Category LIKE '%Male%Brand%' THEN 'MensOutsideBrand' WHEN Category LIKE '%Male%OB%' THEN 'MensOwnBrand' WHEN Category LIKE '%Male%' THEN 'MensOwnBrand' END AS CategoryGroup, CASE WHEN iqs.StatusDate >= @StartDate AND iqs.StatusDate < @EndDate THEN 1 ELSE 0 END AS Items FROM InventoryQueryStatus AS iqs INNER JOIN InventoryStatus AS [is] ON [is].StatusID = iqs.StatusID INNER JOIN Inventory AS i ON i.InventoryID = iqs.InventoryID INNER JOIN InventoryCategory AS ic ON ic.CategoryID = i.CategoryID WHERE iqs.StatusID = 31000 AND Category NOT LIKE 'Force%' ) AS dGROUP BY CategoryGroupORDER BY CategoryGroup[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2008-03-26 : 12:57:34
|
[code]SELECT t.CategoryGroup,COUNT(*) FROM(SELECT i.SKU , iqs.StatusDate, ic.CategoryID, Category, CASEWHEN Category LIKE '%Jewel%' THEN 'Accessories' WHEN Category LIKE '%Beauty%' THEN 'Accessories' WHEN Category LIKE '%Accs%' THEN 'Accessories' WHEN Category LIKE '%Gift%' THEN 'Accessories' WHEN Category LIKE '%Grooming%' THEN 'Accessories' WHEN Category LIKE '%Female%Prem%Brands%' THEN 'WomensPremiumOutsideBrand'WHEN Category LIKE '%Female%Prem%OB%' THEN 'WomensPremiumOwnBrand'WHEN Category LIKE '%Female%Brand%' THEN 'WomensOutsideBrand'WHEN Category LIKE '%Female%OB%%' THEN 'WomensOwnBrand' WHEN Category LIKE '%Female%' THEN 'Womenswear' WHEN Category LIKE '%Male%Prem%Brands%' THEN 'MensPremiumOutsideBrand'WHEN Category LIKE '%Male%Prem%OB%' THEN 'MensPremiumOwnBrand'WHEN Category LIKE '%Male%Brand%' THEN 'MensOutsideBrand'WHEN Category LIKE '%Male%OB%' THEN 'MensOwnBrand' WHEN Category LIKE '%Male%' THEN 'MensOwnBrand' END AS CategoryGroupFROM InventoryQueryStatus iqsJOIN InventoryStatus [is]ON [is].StatusID = iqs.StatusIDJOIN Inventory iON i.InventoryID = iqs.InventoryIDJOIN InventoryCategory icON ic.CategoryID = i.CategoryIDWHERE iqs.StatusID = 31000and Category NOT LIKE 'Force%'AND iqs.StatusDate BETWEEN @StartDate AND @EndDate)tGROUP BY CategoryGroup[/code]where @StartDate and @EndDate are your date parameters |
 |
|
jaybee
Yak Posting Veteran
72 Posts |
Posted - 2008-03-26 : 13:31:09
|
Hi guys, that indeed gets me closer, but what I want is in ADDITION to what I'm getting below, not instead of!!Here's some sample data, sorry it's a bit squashed!!SKU StatusDate CategoryID Category CategoryGroupMAUAB225446 16/01/2008 50 Female Nightwear Brands WomensOutsideBrandMAUAB225446 16/01/2008 50 Female Nightwear Brands WomensOutsideBrandMWFAA225471 03/12/2007 6 Female Footwear OB WomensOwnBrandMWFAA225471 03/12/2007 6 Female Footwear OB WomensOwnBrand MAUAB225446 16/01/2008 50 Female Nightwear Brands WomensOutsideBrandMAUAB225446 16/01/2008 50 Female Nightwear Brands WomensOutsideBrandMWFAA225471 03/12/2007 6 Female Footwear OB WomensOwnBrandMWFAA225471 03/12/2007 6 Female Footwear OB WomensOwnBrand |
 |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2008-03-26 : 13:53:52
|
[code]SELECT t1.SKU , t1.StatusDate, t1.CategoryID, t1.Category,t2.CategoryGroupFROM (SELECT i.SKU , iqs.StatusDate, ic.CategoryID, Category, CASEWHEN Category LIKE '%Jewel%' THEN 'Accessories' WHEN Category LIKE '%Beauty%' THEN 'Accessories' WHEN Category LIKE '%Accs%' THEN 'Accessories' WHEN Category LIKE '%Gift%' THEN 'Accessories' WHEN Category LIKE '%Grooming%' THEN 'Accessories' WHEN Category LIKE '%Female%Prem%Brands%' THEN 'WomensPremiumOutsideBrand'WHEN Category LIKE '%Female%Prem%OB%' THEN 'WomensPremiumOwnBrand'WHEN Category LIKE '%Female%Brand%' THEN 'WomensOutsideBrand'WHEN Category LIKE '%Female%OB%%' THEN 'WomensOwnBrand' WHEN Category LIKE '%Female%' THEN 'Womenswear' WHEN Category LIKE '%Male%Prem%Brands%' THEN 'MensPremiumOutsideBrand'WHEN Category LIKE '%Male%Prem%OB%' THEN 'MensPremiumOwnBrand'WHEN Category LIKE '%Male%Brand%' THEN 'MensOutsideBrand'WHEN Category LIKE '%Male%OB%' THEN 'MensOwnBrand' WHEN Category LIKE '%Male%' THEN 'MensOwnBrand' END AS CategoryGroupFROM InventoryQueryStatus iqsJOIN InventoryStatus [is]ON [is].StatusID = iqs.StatusIDJOIN Inventory iON i.InventoryID = iqs.InventoryIDJOIN InventoryCategory icON ic.CategoryID = i.CategoryIDWHERE iqs.StatusID = 31000and Category NOT LIKE 'Force%'AND iqs.StatusDate BETWEEN @StartDate AND @EndDate)t1INNER JOIN(SELECT t.Category,t.CategoryGroup,COUNT(*) FROM(SELECT i.SKU , iqs.StatusDate, ic.CategoryID, Category, CASEWHEN Category LIKE '%Jewel%' THEN 'Accessories' WHEN Category LIKE '%Beauty%' THEN 'Accessories' WHEN Category LIKE '%Accs%' THEN 'Accessories' WHEN Category LIKE '%Gift%' THEN 'Accessories' WHEN Category LIKE '%Grooming%' THEN 'Accessories' WHEN Category LIKE '%Female%Prem%Brands%' THEN 'WomensPremiumOutsideBrand'WHEN Category LIKE '%Female%Prem%OB%' THEN 'WomensPremiumOwnBrand'WHEN Category LIKE '%Female%Brand%' THEN 'WomensOutsideBrand'WHEN Category LIKE '%Female%OB%%' THEN 'WomensOwnBrand' WHEN Category LIKE '%Female%' THEN 'Womenswear' WHEN Category LIKE '%Male%Prem%Brands%' THEN 'MensPremiumOutsideBrand'WHEN Category LIKE '%Male%Prem%OB%' THEN 'MensPremiumOwnBrand'WHEN Category LIKE '%Male%Brand%' THEN 'MensOutsideBrand'WHEN Category LIKE '%Male%OB%' THEN 'MensOwnBrand' WHEN Category LIKE '%Male%' THEN 'MensOwnBrand' END AS CategoryGroupFROM InventoryQueryStatus iqsJOIN InventoryStatus [is]ON [is].StatusID = iqs.StatusIDJOIN Inventory iON i.InventoryID = iqs.InventoryIDJOIN InventoryCategory icON ic.CategoryID = i.CategoryIDWHERE iqs.StatusID = 31000and Category NOT LIKE 'Force%'AND iqs.StatusDate BETWEEN @StartDate AND @EndDate)tGROUP BY Category,CategoryGroup)t2ON t2.Category=t1.Category[/code] |
 |
|
jaybee
Yak Posting Veteran
72 Posts |
Posted - 2008-03-27 : 05:17:46
|
Looks like a great piece of code, but getting this error message:Msg 8155, Level 16, State 2, Line 4No column was specified for column 3 of 't2'. |
 |
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-03-27 : 05:22:25
|
You should know how to fix this!SELECT t.Category,t.CategoryGroup,COUNT(*) FROMSELECT t.Category,t.CategoryGroup,COUNT(*) AS MyNameHere FROM E 12°55'05.25"N 56°04'39.16" |
 |
|
|
|
|
|
|