Link to home
Start Free TrialLog in
Avatar of mburk1968
mburk1968Flag for United States of America

asked on

SQL Subquery assistance

I have the following query that pulls a single row of data based on a set of parameters. See attached example 1
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
DECLARE @Searchby VARCHAR(1);
DECLARE @Number INT;
SET @Searchby = 'I';
SET @Number = '603200';

SELECT  CI.pick_num ,
        CI.style ,
        CI.color_code ,
        CI.lbl_code ,
        CI.dimension ,
        CI.price ,
        CI.total_qty ,
        CI.ship_name ,
        CI.uom ,
        CI.style_name ,
        CI.cont_desc ,
        CI.group_name ,
        CI.cnty_name ,
        CI.customer ,
        CI.store ,
        CI.ship_dc ,
        CI.ord_num ,
        CI.center_code ,
        CI.po_num ,
        ST.ShipTo_Name ,
        ST.ShipTo_Address1 ,
        ST.ShipTo_Address2 ,
        ST.ShipTo_City ,
        ST.ShipTo_State ,
        ST.ShipTo_ZipCode ,
        ST.ShipTo_Country_Name ,
        CI.inv_num ,
        CASE WHEN ( @Searchby = 'O' ) THEN ( CI.ord_num )
             WHEN ( @Searchby = 'P' ) THEN ( CI.pick_num )
             WHEN ( @Searchby = 'I' ) THEN ( CI.inv_num )
             WHEN ( @Searchby = 'C' ) THEN ( CI.po_num )
        END AS SearchNumber ,
        SC.HS_NUM ,
        SC.HS_NUM2 ,
        SC.HS_NUM3 ,
        CI.curr_code
FROM    [KLL Commercial Invoice] AS CI
        INNER JOIN [KLL Ship To Address Resolution] AS ST ON CI.pick_num = ST.pick_num
                                                             AND @Searchby = 'P'
                                                             OR CI.ord_num = ST.ord_num
                                                             AND @Searchby IN (
                                                             'O', 'C' )
                                                             OR CI.inv_num = ST.inv_num
                                                             AND @Searchby = 'I'
        INNER JOIN zzxscolr AS SC ON CI.style = SC.style
                                     AND CI.color_code = SC.color_code
                                     AND CI.lbl_code = SC.lbl_code
                                     AND CI.dimension = SC.dimension
                                     AND CI.division = SC.division
WHERE   ( CI.pick_num IN ( @Number ) )
        AND ( @Searchby = 'P' )
        OR ( @Searchby = 'O' )
        AND ( CI.ord_num IN ( @Number ) )
        OR ( @Searchby = 'I' )
        AND ( CI.inv_num IN ( @Number ) );

Open in new window



I need to alter the above query so that it selects the details of the above order using something similar as below.

The link is as follows CI.style = SV.rng.style  AND CI.lbl_code =SV.rng_lbl AND CI.color_code = SV.rng_color

SELECT  SV.rng_style ,
        SV.Size_Desc ,
        MAX(SV.rng_total_qty) AS rng_total_qty ,
        SUM(SV.Size_Qty) AS size_qty
FROM    [KLL Range Style Breakdown by Size Vertical] AS SV
WHERE   SV.rng_style = '1160000r'
        AND SV.rng_lbl = '66can'
        AND SV.rng_color = 'asst'
        AND SV.Size_Qty <> 0
GROUP BY SV.rng_style ,
        SV.Size_Desc; 

Open in new window


Output of query 2
rng_style        Size_Desc     rng_total_qty     size_qty
1160000R          18MO            40                         3
1160000R          2                      40                         4
1160000R          3                      40                         5
1160000R          4                      40                         5
1160000R          5                      40                         7
1160000R          6                      40                         5
1160000R          7                      40                         5
1160000R          8                      40                         6
Example-1.xlsx
ASKER CERTIFIED SOLUTION
Avatar of Arifhusen Ansari
Arifhusen Ansari
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of mburk1968

ASKER

Received the following: Msg 208, Level 16, State 1, Line 9
Invalid object name 'CTE_Detail_Aggregaed_Data'.

It's the last part of the SQL it looks like.
SELECT  CHD.* ,
            CAD.*
    FROM    CTE_Header_Detail CHD
            INNER JOIN CTE_Detail_Aggregaed_Data CAD ON CHD.style = SV.rng_style;


SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
DECLARE @Searchby VARCHAR(1);
DECLARE @Number INT;
SET @Searchby = 'I';
SET @Number = '603200';


;
WITH    CTE_Header_Detail
          AS ( SELECT   CI.pick_num ,
                        CI.style ,
                        CI.color_code ,
                        CI.lbl_code ,
                        CI.dimension ,
                        CI.price ,
                        CI.total_qty ,
                        CI.ship_name ,
                        CI.uom ,
                        CI.style_name ,
                        CI.cont_desc ,
                        CI.group_name ,
                        CI.cnty_name ,
                        CI.customer ,
                        CI.store ,
                        CI.ship_dc ,
                        CI.ord_num ,
                        CI.center_code ,
                        CI.po_num ,
                        ST.ShipTo_Name ,
                        ST.ShipTo_Address1 ,
                        ST.ShipTo_Address2 ,
                        ST.ShipTo_City ,
                        ST.ShipTo_State ,
                        ST.ShipTo_ZipCode ,
                        ST.ShipTo_Country_Name ,
                        CI.inv_num ,
                        CASE WHEN ( @Searchby = 'O' ) THEN ( CI.ord_num )
                             WHEN ( @Searchby = 'P' ) THEN ( CI.pick_num )
                             WHEN ( @Searchby = 'I' ) THEN ( CI.inv_num )
                             WHEN ( @Searchby = 'C' ) THEN ( CI.po_num )
                        END AS SearchNumber ,
                        SC.HS_NUM ,
                        SC.HS_NUM2 ,
                        SC.HS_NUM3 ,
                        CI.curr_code
               FROM     [KLL Commercial Invoice] AS CI
                        INNER JOIN [KLL Ship To Address Resolution] AS ST ON CI.pick_num = ST.pick_num
                                                              AND @Searchby = 'P'
                                                              OR CI.ord_num = ST.ord_num
                                                              AND @Searchby IN (
                                                              'O', 'C' )
                                                              OR CI.inv_num = ST.inv_num
                                                              AND @Searchby = 'I'
                        INNER JOIN zzxscolr AS SC ON CI.style = SC.style
                                                     AND CI.color_code = SC.color_code
                                                     AND CI.lbl_code = SC.lbl_code
                                                     AND CI.dimension = SC.dimension
                                                     AND CI.division = SC.division
               WHERE    ( CI.pick_num IN ( @Number ) )
                        AND ( @Searchby = 'P' )
                        OR ( @Searchby = 'O' )
                        AND ( CI.ord_num IN ( @Number ) )
                        OR ( @Searchby = 'I' )
                        AND ( CI.inv_num IN ( @Number ) )
             ),
        CTE_Aggregaed_Data
          AS ( SELECT   SV.rng_style ,
                        SV.Size_Desc ,
                        MAX(SV.rng_total_qty) AS rng_total_qty ,
                        SUM(SV.Size_Qty) AS size_qty
               FROM     [KLL Range Style Breakdown by Size Vertical] AS SV
                        INNER JOIN CTE_Header_Detail CHD ON CHD.style = SV.rng_style
                                                            AND CHD.lbl_code = SV.rng_lbl
                                                            AND CHD.color_code = SV.rng_color
               WHERE    SV.Size_Qty <> 0
               GROUP BY SV.rng_style ,
                        SV.Size_Desc
             )
    SELECT  CHD.* ,
            CAD.*
    FROM    CTE_Header_Detail CHD
            INNER JOIN CTE_Detail_Aggregaed_Data CAD ON CHD.style = SV.rng_style;  

Open in new window

Okay I figured out it was just a typo for the above however I am now seeing this at the end
Msg 4104, Level 16, State 1, Line 82
The multi-part identifier "SV.rng_style" could not be bound.

FROM    CTE_Header_Detail CHD
            INNER JOIN CTE_Aggregaed_Data CAD ON CHD.style = SV.rng_style;
Thank you