-3

---===============DATA WORKING LEVEL======================-----------------


DECLARE @date NVARCHAR(8), @to NVARCHAR(8);
SET @date = '202412';
SET @to = '202501';


with 
dn as
(
    select substring(vbeln_im,PATINDEX('%[^0]%',vbeln_im),len(vbeln_im)) 'vbeln_im',max(budat_mkpf) 'dn_gr_date'
    from mseg
    where shkzg = 'S' and bwart !='107' and vbeln_im is not null and substring(vbeln_im,PATINDEX('%[^0]%',vbeln_im),len(vbeln_im)) in (
            select distinct [deliveryorder] 
            from dwh.OTIFDashboard o 
            where OTIFVersion between @date and @to and ordertype ='SO'
        )
    group by vbeln_im
)



select 

    OTIFVersion,
    YearMonthReqDelDate,
    supplyingmrparea,
    receivingmrparea,
    receivingcustomer,
    ltrim(rtrim(receivingcountry)) receivingcountry,
    material,
    [order],
    [item],
    [ordertype],
    ServiceOrderType,
    SalesDocType,
    [priority],
    supplychainlevel,
    creationdate,
    requesteddeliverydate,
    RequestedDeliveryDateAdj,
    materialavaildate,
    promiseddate,
    [1stpromiseddate],
    [scheduledGIdate],
    [1stscheduledGIdate],
    [actualgidate],
    [actualgrdate],
    deliveryorder,
    deliveryordercreationdate,
    deliveryorderplannedgidate,
    deliverycreator1,
    orderedqty,
    confirmedqty,
    deliveredqty,
    mseggoodsreceiptqty,
    scheduleline,
    supplyingbu,
    receivingbu,
    plannedLeadtime,
    actualLeadtime,
    Material_category_description,
    cogsperunit,
    countbaseRDD,
    countavailabilityadj,
    SBUReceivingCountry,
    KNTTP,
    PSTYV,

    countbaseRDD 'countbaseRDD',
    countavailabilityadj 'countavailabilityadj',
    case when deliveredqty >= orderedqty then 1 else 0 end as 'Status - Delivery Quantity',
    case when [Revised GR Quantity]>= OrderedQty then 1 else 0 end as 'Status - Goods Receipt Quantity',

    case 
    when ((deliveryordercreationdate <= creationdate) OR
    (deliveryordercreationdate <= dateadd(d,1,creationdate) and [Priority] not in ('70','80')) OR
    (PromisedDate <= RequestedDeliveryDate and DeliveryOrderCreationDate <= MaterialAvailDate)) 
    AND DeliveredQty >=OrderedQty then 1
    else 0 end as 'Status : Delivery',

    case 
    when deliveryordercreationdate <= creationdate AND DeliveredQty >=OrderedQty then 'DNC <= CD'
    when deliveryordercreationdate <= dateadd(d,1,creationdate) and [Priority] not in ('70','80') AND DeliveredQty >=OrderedQty then 'DNC+1 (non priority)'
    when PromisedDate <= RequestedDeliveryDate and DeliveryOrderCreationDate <= MaterialAvailDate AND DeliveredQty >=OrderedQty then 'PRD based'
    else '' end as 'Status : Delivery comment',


    case when ActualGIDate <= [Requested GI date] and deliveredqty >= orderedqty then 1 
    else 0 end as 'Status : Goods issue',

    case when [Revised GR Date] <= RequestedDeliveryDate and [Revised GR Quantity] >= orderedqty then 1 
    else 0 end as 'Status : Goods receipt',

    case when ActualGIDate <= [Requested GI date adj] and deliveredqty >= orderedqty then 1 
    else 0 end as 'AdjStatus : Goods issue',

    case when [Revised GR Date] <= RequestedDeliveryDateAdj and [Revised GR Quantity] >= orderedqty then 1 
    else 0 end as 'AdjStatus : Goods receipt',

    case
    when [Revised GR Date] <= RequestedDeliveryDateAdj and [Revised GR Quantity] >= orderedqty then 'Ontime'
    when (case 
    when ((deliveryordercreationdate <= creationdate) OR
    (deliveryordercreationdate <= dateadd(d,1,creationdate) and [Priority] not in ('70','80')) OR
    (PromisedDate <= RequestedDeliveryDate and DeliveryOrderCreationDate <= MaterialAvailDate)) 
    AND DeliveredQty >=OrderedQty then 1
    else 0 end) = '0' then 'Stock out'

    when (case when ActualGIDate <= [Requested GI date] and deliveredqty >= orderedqty then 1 
    else 0 end) = 0 then 'DN/GI Issue'

    else 'GR Issue' end as 'RCA'

from 
(
    select *,

        case when ordertype = 'SO' then isnull(DeliveredQty,0) else isnull(mseggoodsreceiptqty,0) end as 'Revised GR Quantity',
        case when actualgrdate is null then dn_gr_date else actualgrdate end as 'Revised GR Date',

        case when PromisedDate is not null and ScheduledGIDate is not null and ScheduledGIDate <=PromisedDate
        then datediff(d,promisedDate,scheduledGIdate)
        else -1 end as 'Delta PRD-SGI',

        case when PromisedDate is not null and ScheduledGIDate is not null and ScheduledGIDate <=PromisedDate
        then dateadd(d,datediff(d,promisedDate,scheduledGIdate),requesteddeliverydate)
        else dateadd(d,1,CreationDate) end as 'Requested GI date',

        case when PromisedDate is not null and ScheduledGIDate is not null and ScheduledGIDate <=PromisedDate
        then dateadd(d,datediff(d,promisedDate,scheduledGIdate),RequestedDeliveryDateAdj)
        else dateadd(d,1,CreationDate) end as 'Requested GI date adj'

    from dwh.OTIFDashboard o
        left join vbap so on so.vbeln = o.[order] and so.posnr = o.[item]
        left join ekpo po on po.ebeln = o.[order] and po.ebelp = o.[item]
        left join dn on dn.vbeln_im = o.[deliveryorder]
        --left join mdma on o.material = mdma.matnr and mdma.berid = isnull(po.werks+isnull(po.lgort,''),so.plant+isnull(so.storagelocationkey,''))
        --left join t460a on mdma.werks = t460a.werks and mdma.sobsl = t460a.sobsl

    where 
        OTIFVersion between @date and @to
        and countbaserdd = '1'
        and measurelevel = 'Line Level'
        and isnull(deletionindicator,'') = ''
        and Material_Category_Description in ('Spares', 'Consumeables','Mains','Main') 
        and FlowType != 'Return' 
        and SBUReceivingCountry in ('APAC','MED','NCE','LATAM','AME')
) d
0

1 Answer 1

4

SELECT * returns all columns from all tables. It seems like more than one of tables inside that join contains the column of that name.

You generally should list only the columns you actually need instead of relying on the asterisk shortcut.

Also note that SQL Server 2012 is no longer supported, and you probably should upgrade.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.