0

I want to combine two column in one column in oracle. I have follow this link: this . The query is:

SELECT T6.ITEM_GROUP_NAME,T7.ZONE_NAME,T5.SR_NAME, T5.SR_ID, T5.MOBILE_NO ,T3.ROUTE_NAME ,T1.OUTLET_NAME, T1.OUTLET_ADDRESS, T1.PROPRITOR_NAME, T1.MOBILE_NUMBER , T2.STATUS || T8.REASON as OUTLET_STATUS,
                    SUM(((T2.ITEM_CTN*T4.FACTOR)+ T2.ITEM_QTY )*T2.OUT_PRICE )AS AMOUNT 
                    FROM T_OUTLET T1 , T_ORDER_DETAIL T2, T_ROUTE T3 , T_ITEM T4 , T_SR_INFO T5 , T_ITEM_GROUP T6 ,T_ZONE T7 , T_NON_PRODUCTIVE_SALES T8
                    WHERE T6.ITEM_GROUP_ID='000200000' and T7.ZONE_ID='Z002' and T5.SR_ID= '174369' and T2.OUTLET_ID=T1.OUTLET_ID AND T3.ROUTE_ID = T2.ROUTE_ID AND T2.STATUS='Y' and T2.ENTRY_DATE= TO_DATE( '11/02/2017','dd/mm/yyyy') and T2.ITEM_ID=T4.ITEM_ID and T8.ENTRY_DATE= TO_DATE( '11/02/2017','dd/mm/yyyy') and T8.SR_ID = '174369' and T2.OUTLET_ID= T8.OUTLET_ID
                    GROUP BY T6.ITEM_GROUP_NAME,T7.ZONE_NAME,T5.SR_NAME, T5.SR_ID, T5.MOBILE_NO ,T2.ENTRY_DATE , T2.OUTLET_ID,T3.ROUTE_NAME ,T1.OUTLET_NAME, T1.OUTLET_ADDRESS, T1.PROPRITOR_NAME, T1.MOBILE_NUMBER , OUTLET_STATUS
                    ORDER BY T1.OUTLET_NAME

But when I do this, it shows error:

ORA-00904: "OUTLET_STATUS": invalid identifier

Where is the problem?

Community
  • 1
  • 1
OUN Saif
  • 305
  • 1
  • 4
  • 20

1 Answers1

1

The evaluation of group by happens before the select, so the group by is not aware of the column named OUTLET_STATUS.

Change the OUTLET_STATUS in your group by to T2.STATUS || T8.REASON:

select
. . .
group by T6.ITEM_GROUP_NAME,
    T7.ZONE_NAME,
    T5.SR_NAME,
    T5.SR_ID,
    T5.MOBILE_NO,
    T2.ENTRY_DATE,
    T2.OUTLET_ID,
    T3.ROUTE_NAME,
    T1.OUTLET_NAME,
    T1.OUTLET_ADDRESS,
    T1.PROPRITOR_NAME,
    T1.MOBILE_NUMBER,
    T2.status || T8.REASON  --here
order by T1.OUTLET_NAME

So, your query becomes:

select T6.ITEM_GROUP_NAME,
    T7.ZONE_NAME,
    T5.SR_NAME,
    T5.SR_ID,
    T5.MOBILE_NO,
    T3.ROUTE_NAME,
    T1.OUTLET_NAME,
    T1.OUTLET_ADDRESS,
    T1.PROPRITOR_NAME,
    T1.MOBILE_NUMBER,
    T2.status || T8.REASON as OUTLET_STATUS,
    SUM(((T2.ITEM_CTN * T4.FACTOR) + T2.ITEM_QTY) * T2.OUT_PRICE) as AMOUNT
from T_OUTLET T1,
    T_ORDER_DETAIL T2,
    T_ROUTE T3,
    T_ITEM T4,
    T_SR_INFO T5,
    T_ITEM_GROUP T6,
    T_ZONE T7,
    T_NON_PRODUCTIVE_SALES T8
where T6.ITEM_GROUP_ID = '000200000'
    and T7.ZONE_ID = 'Z002'
    and T5.SR_ID = '174369'
    and T2.OUTLET_ID = T1.OUTLET_ID
    and T3.ROUTE_ID = T2.ROUTE_ID
    and T2.status = 'Y'
    and T2.ENTRY_DATE = TO_DATE('11/02/2017', 'dd/mm/yyyy')
    and T2.ITEM_ID = T4.ITEM_ID
    and T8.ENTRY_DATE = TO_DATE('11/02/2017', 'dd/mm/yyyy')
    and T8.SR_ID = '174369'
    and T2.OUTLET_ID = T8.OUTLET_ID
group by T6.ITEM_GROUP_NAME,
    T7.ZONE_NAME,
    T5.SR_NAME,
    T5.SR_ID,
    T5.MOBILE_NO,
    T2.ENTRY_DATE,
    T2.OUTLET_ID,
    T3.ROUTE_NAME,
    T1.OUTLET_NAME,
    T1.OUTLET_ADDRESS,
    T1.PROPRITOR_NAME,
    T1.MOBILE_NUMBER,
    T2.status || T8.REASON   -- here
order by T1.OUTLET_NAME
Gurwinder Singh
  • 38,557
  • 6
  • 51
  • 76