2017-01-27 8 views
0

Есть ли способ, чтобы соединить эти два запроса вместеКак объединить эти два вопроса?

select --STR_NBR "Store", 
DAY_DATE "Date", 
b.whse_prod_vendor_nbr, 
PLN_NBR, 
sum(LO_IOH_UNITS) "STORE INVENTORY ON HAND" 
--sum(LO_IOH_ORDER_QTY) "STORE ORDERS" 

from MSS_OWNER.FCT_IOH_DAY_STR_PLN a 
    right join dim_prod_pln b 
     on a.prod_id = b.prod_id 
    right join dim_period c 
     on a.per_id = c.per_id 
    inner join dim_location d 
     on a.loc_id = d.str_nbr 

Where DAY_DATE >= to_date ('1/19/2017','MM/DD/YYYY') --- ENTER THE DATE 
and DAY_DATE <= to_date ('1/19/2017','MM/DD/YYYY') --- ENTER THE SAME DATE OR A RANGE 
and (LO_IOH_UNITS) >0 
--and str_nbr in() 
and PLN_NBR in ('40000278132') 
--and b.whse_prod_vendor_nbr in ('040683') 


group by -- STR_NBR, 
DAY_DATE, 
b.whse_prod_vendor_nbr, 
PLN_NBR 

второй запрос

select DAY_DATE, 
pln_nbr, 
sum(a.TOT_REG_IOH_UNITS+a.TOT_DISTR_IOH_UNITS) "DC OH HAND Units", -- This is the total on Hand. It includes Reg OH and Dist OH 
sum(a.TOT_REG_ordr_UNITS+a.TOT_DISTR_ordr_UNITS) "DC Dist OO " 

From MSS_OWNER.FCT_DA_DAY_DC_VEND_WIC a, dim_prod_wic b, dim_period c 

where a.PROD_ID = b.PROD_ID 
and a.PER_ID = c.PER_ID 
and DAY_DATE >= to_date ('1/26/2017','MM/DD/YYYY') --- ENTER THE DATE 
and DAY_DATE <= to_date ('1/26/2017','MM/DD/YYYY') --- ENTER THE SAME DATE OR A RANGE 
and (TOT_REG_IOH_UNITS+TOT_DISTR_IOH_UNITS+TOT_REG_ordr_UNITS+TOT_DISTR_ordr_UNITS)>0 
--and b. PLN_NBR in ('40000278132') 
and b.whse_prod_vendor_nbr in ('040683') 

group by 
DAY_DATE, 
PLN_NBR 

Цель состоит в том, чтобы иметь 6 столбцов с датой Дня, поставщика NBR, PLn NBR, магазин инвентаря на руках , dc ioh, dc ioo Любые идеи?

ответ

2

Я думаю, что это то, что вы хотите, но не уверены, если постоянное IOH, постоянные БКИ столбцы являются правильными, но вы можете изменить, если вы хотите:

SELECT  B.DAY_DATE AS [Day date] 
     , b.whse_prod_vendor_nbr AS [vendor nbr] 
     , A.PLN_NBR AS [pln nbr] 
     , [STORE INVENTORY ON HAND] 
     , [DC OH HAND Units] AS [dc ioh] 
     , [DC Dist OO] AS [dc ioo] 
FROM 
     (SELECT --STR_NBR "Store", 
      DAY_DATE "Date" 
     , b.whse_prod_vendor_nbr 
     , PLN_NBR 
     , SUM(LO_IOH_UNITS) "STORE INVENTORY ON HAND" 
      --sum(LO_IOH_ORDER_QTY) "STORE ORDERS" 
      FROM MSS_OWNER.FCT_IOH_DAY_STR_PLN a 
       RIGHT JOIN dim_prod_pln b ON a.prod_id = b.prod_id 
       RIGHT JOIN dim_period c ON a.per_id = c.per_id 
       INNER JOIN dim_location d ON a.loc_id = d.str_nbr 
      WHERE DAY_DATE >= to_date 
       ('1/19/2017', 'MM/DD/YYYY') --- ENTER THE DATE 
       AND DAY_DATE <= to_date 
       ('1/19/2017', 'MM/DD/YYYY') --- ENTER THE SAME DATE OR A RANGE 
       AND (LO_IOH_UNITS) > 0 
       --and str_nbr in() 
       AND PLN_NBR IN('40000278132') 
      --and b.whse_prod_vendor_nbr in ('040683') 
      GROUP BY -- STR_NBR, 
      DAY_DATE 
     , b.whse_prod_vendor_nbr 
     , PLN_NBR) AS A 
     INNER JOIN 
       (SELECT DAY_DATE 
         , pln_nbr 
         , SUM(a.TOT_REG_IOH_UNITS + a.TOT_DISTR_IOH_UNITS) "DC OH HAND Units" -- This is the total on Hand. It includes Reg OH and Dist OH 
         , SUM(a.TOT_REG_ordr_UNITS + a.TOT_DISTR_ordr_UNITS) "DC Dist OO " 
        FROM MSS_OWNER.FCT_DA_DAY_DC_VEND_WIC a 
         , dim_prod_wic b 
         , dim_period c 
        WHERE a.PROD_ID = b.PROD_ID 
         AND a.PER_ID = c.PER_ID 
         AND DAY_DATE >= to_date 
         ('1/26/2017', 'MM/DD/YYYY') --- ENTER THE DATE 
         AND DAY_DATE <= to_date 
         ('1/26/2017', 'MM/DD/YYYY') --- ENTER THE SAME DATE OR A RANGE 
         AND (TOT_REG_IOH_UNITS + TOT_DISTR_IOH_UNITS + TOT_REG_ordr_UNITS + TOT_DISTR_ordr_UNITS) > 0 
         --and b. PLN_NBR in ('40000278132') 
         AND b.whse_prod_vendor_nbr IN('040683') 
        GROUP BY DAY_DATE 
         , PLN_NBR) AS B ON A.PLN_NBR = B.PLN_NBR 
             AND A.[Date] = B.DAY_DATE; 
Смежные вопросы