如何使用SQL视图,让每一趟每个载波的总薪酬

问题描述 投票:-1回答:1

我试图让这个SQL视图以总载体的工资。我想补充的Select语句说得对从顶部选择和工会选择,但它是做什么的共计所有运营商支付,并在网格内返回的每行显示量。是它和每增加付款项目的支付金额加盖领域是pyd_amount。我可以得到它的工作,如果我在选择添加where子句,但它正在37秒打开,和网格30有时间在这里是有问题的SQL视图:

USE [Database]
GO

/****** Object:  View [dbo].[OperationsTripViewDetails_Venture_NOPAY]    Script Date: 2/1/2019 11:32:41 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO






--71330,66418 
ALTER view [dbo].[OperationsTripViewDetails_Venture_NOPAY]
as     

select a.OrderNumber, 
    a.DispStatus, a.OrderHeaderNumber, a.ord_shipper, a.ord_consignee,  
    a.StartDate, ISNULL(fc.cmp_id, '') as OriginId, ISNULL(fc.cmp_name, '') as OriginName, fcy.cty_nmstct as OriginCity, fcy.cty_state as OriginState, fcy.cty_zip as OriginZip,     
    a.EndDate, ISNULL(lc.cmp_id, '') as FinalId, ISNULL(lc.cmp_name, '') as FinalName, lcy.cty_nmstct as FinalCity, lcy.cty_state as FinalState, lcy.cty_zip As FinalZip,   
    (select sum(stp_lgh_mileage) from stops (nolock) where stops.lgh_number = a.lgh_number) as Mileage, a.Weight, a.Revenue,     
    a.StopCount, a.Driver1, a.Driver1Name, a.Tractor, a.Trailer1,     
    a.Carrier, a.Driver2, a.Driver2Name, a.Trailer2, a.TrailerType,     
    a.CmdCode, a.CmdDescription, a.CmdCount,    
    a.RevType1, a.RevType1Name, a.RevType2, a.RevType2Name, a.RevType3, a.RevType3Name, a.RevType4, a.RevType4Name,
    a.BookingTerminal, a.ExecutingTerminal, a.RouteId,     
    a.lgh_number, a.TotalMailStatus, a.TotalMailStatusName, a.InStatus,     
    a.BookedBy, a.BillTo, a.OrderBy, a.RefNum,     
    pc.cmp_id as PickupId, pc.cmp_name as PickupName, pc.cty_nmstct as PickupCity, pc.cmp_state as PickupState, pc.cmp_zip as PickupZip, pc.cmp_region1 as PickupRegion1, 
    pc.cmp_region2 as PickupRegion2, pc.cmp_region3 as PickupRegion3, pc.cmp_region4 as PickupRegion4,
    a.Leg_Start, a.Leg_End, a.Leg_StartRegion1, a.Leg_StartRegion2, a.Leg_StartRegion3, a.Leg_StartRegion4,
    a.Leg_EndRegion1,  a.Leg_EndRegion2, a.Leg_EndRegion3, a.Leg_EndRegion4, 
    cc.cmp_id as ConsigneeId, cc.cmp_name as ConsigneeName, cc.cty_nmstct as ConsigneeCity, cc.cmp_zip as ConsigneeZip, cc.cmp_state as ConsigneeState, cc.cmp_region1 as ConsigneeRegion1, 
    cc.cmp_region2 as ConsigneeRegion2, cc.cmp_region3 as ConsigneeRegion3, cc.cmp_region4 as ConsigneeRegion4,

    a.LghType1, 
    (select top 1 [name] from labelfile (nolock) where labeldefinition = 'LghType1' and abbr = a.LghType1) as LghType1Name, 
    a.LghType2, (select top 1 [name] from labelfile (nolock) where labeldefinition = 'LghType2' and abbr = a.lghtype2) as LghType2Name,
    a.TeamLeader, (select top 1 [name] from labelfile(nolock) where labeldefinition = 'TeamLeader' and abbr = a.TeamLeader) As TeamLeaderName,     
    a.OrderStatus, (select top 1 [name] from labelfile (nolock) where labeldefinition = 'DispStatus' and abbr = a.OrderStatus) as OrderStatusName, 
    a.mov_number, a.EtaStatus, a.EtaComment, a.[Priority],
     a.lgh_comment,
     a.lgh_trc_comment,
     a.Remarks,
     a.GPSDate,
     a.GPSLocation,
     a.Pay_Total,
    (select dbo.GetMinutesAway(a.mov_number)) As MinutesAway
from    (
            select rtrim(oh.ord_number)+ case when isnull(legheader.lgh_split_flag,'N') = 'N' then '' else '-' + legheader.lgh_split_flag end as OrderNumber, 
                la.lgh_outstatus as DispStatus, oh.ord_hdrnumber As OrderHeaderNumber,   
                la.lgh_startdate as StartDate, 
                la.lgh_enddate as EndDate, 
                la.lgh_startcty_nmstct as Leg_Start,
                la.lgh_endcty_nmstct as Leg_End,
                la.lgh_startregion1 as Leg_StartRegion1, la.lgh_startregion2 as Leg_StartRegion2, la.lgh_startregion3 as Leg_StartRegion3, la.lgh_startregion4 as Leg_StartRegion4,
                la.lgh_endregion1 as Leg_EndRegion1, la.lgh_endregion2 as Leg_EndRegion2, la.lgh_endregion3 as Leg_EndRegion3, la.lgh_endregion4 as Leg_EndRegion4,
                la.ord_totalweight as Weight, FORMAT (oh.ord_totalcharge,'C','en-us') as Revenue,     
                la.ord_stopcount StopCount, la.lgh_driver1 as Driver1, la.evt_driver1_name Driver1Name, la.lgh_tractor as Tractor, la.lgh_primary_trailer as Trailer1,     
                la.lgh_carrier as Carrier, la.lgh_driver2 as Driver2, la.evt_driver2_name Driver2Name, la.lgh_primary_pup as Trailer2, oh.trl_type1 TrailerType,     
                la.cmd_code as CmdCode, la.fgt_description as CmdDescription, la.cmd_count as CmdCount,    
                la.lgh_class1 as RevType1, la.lgh_class1_name as RevType1Name, la.lgh_class2 as RevType2, la.lgh_class2_name as RevType2Name, la.lgh_class3 as RevType3, la.lgh_class3_name as RevType3Name, la.lgh_class4 as RevType4, la.lgh_class4_name as RevType4Name,
                ord_booked_revtype1 as BookingTerminal, la.lgh_booked_revtype1 as ExecutingTerminal, la.lgh_route RouteId,     
                la.lgh_number, la.lgh_tm_status as TotalMailStatus, la.lgh_tm_statusname as TotalMailStatusName, la.lgh_instatus as InStatus,     
                oh.ord_bookedby as BookedBy, oh.ord_billto as BillTo,
                oh.ord_company as OrderBy, --- oh.ord_customer as OrderBy, ---> PTS# 66418
                oh.ord_refnum as RefNum,     
                la.lgh_type1 as LghType1, 
                la.lgh_type2 as LghType2, 
                la.mpp_teamleader as TeamLeader, 
                oh.ord_status as OrderStatus, 
                la.mov_number as mov_number, legheader.lgh_etaalert1 as EtaStatus, legheader.lgh_etacomment as EtaComment,
                oh.ord_priority as 'Priority', 
                oh.ord_shipper as ord_shipper,
                oh.ord_consignee as ord_consignee,
                la.cmp_id_start as cmp_id_start,
                la.lgh_startcity as lgh_startcity,
                la.cmp_id_end as cmp_id_end,
                la.lgh_endcity as lgh_endcity,
                la.lgh_comment as lgh_comment,
                la.lgh_trc_comment as lgh_trc_comment,
                oh.ord_remark as Remarks,
                (select IsNull (mpp_gps_date, '') from manpowerprofile where manpowerprofile.mpp_id = oh.ord_driver1) as GPSDate,
                (select IsNull (mpp_gps_desc, '') from manpowerprofile where manpowerprofile.mpp_id = oh.ord_driver1) as GPSLocation,
                (select CAST(SUM(PD.pyd_amount)As Decimal (10,2))  from Paydetail PD Inner join Legheader L on( L.lgh_number = PD.lgh_number) 
                and (L.lgh_carrier = PD.asgn_id) and (PD.ord_hdrnumber = L.ord_hdrnumber) and l.ord_hdrnumber<>0 and l.ord_hdrnumber is not NULL and PD.asgn_type = 'CAR' Group by PD.pyd_amount) as 'Pay_Total'
              from legheader_active la join legheader on legheader.lgh_number = la.lgh_number    
                   inner join OrderHeaderRowRestrictedView oh on (la.ord_hdrnumber = oh.ord_hdrnumber)
               WHERE la.lgh_outstatus <> 'CMP'

            union 

            select rtrim(oh.ord_number)+ case when isnull(legheader.lgh_split_flag,'N') = 'N' then '' else '-' + legheader.lgh_split_flag end as OrderNumber, 
                la.lgh_outstatus as DispStatus, oh.ord_hdrnumber As OrderHeaderNumber,   
                la.lgh_startdate as StartDate, 
                la.lgh_enddate as EndDate, 
                la.lgh_startcty_nmstct as Leg_Start,
                la.lgh_endcty_nmstct as Leg_End,
                la.lgh_startregion1 as Leg_StartRegion1, la.lgh_startregion2 as Leg_StartRegion2, la.lgh_startregion3 as Leg_StartRegion3, la.lgh_startregion4 as Leg_StartRegion4,
                la.lgh_endregion1 as Leg_EndRegion1, la.lgh_endregion2 as Leg_EndRegion2, la.lgh_endregion3 as Leg_EndRegion3, la.lgh_endregion4 as Leg_EndRegion4,  
                la.ord_totalweight as Weight, FORMAT (oh.ord_totalcharge,'C','en-us') as Revenue,     
                la.ord_stopcount StopCount, la.lgh_driver1 as Driver1, la.evt_driver1_name Driver1Name, la.lgh_tractor as Tractor, la.lgh_primary_trailer as Trailer1,     
                la.lgh_carrier as Carrier, la.lgh_driver2 as Driver2, la.evt_driver2_name Driver2Name, la.lgh_primary_pup as Trailer2, oh.trl_type1 TrailerType,     
                la.cmd_code as CmdCode, la.fgt_description as CmdDescription, la.cmd_count as CmdCount,    
                la.lgh_class1 as RevType1, la.lgh_class1_name as RevType1Name, la.lgh_class2 as RevType2, la.lgh_class2_name as RevType2Name, la.lgh_class3 as RevType3, la.lgh_class3_name as RevType3Name, la.lgh_class4 as RevType4, la.lgh_class4_name as RevType4Name,
                ord_booked_revtype1 as BookingTerminal, la.lgh_booked_revtype1 as ExecutingTerminal, la.lgh_route RouteId,     
                la.lgh_number, la.lgh_tm_status as TotalMailStatus, la.lgh_tm_statusname as TotalMailStatusName, la.lgh_instatus as InStatus,     
                oh.ord_bookedby as BookedBy, oh.ord_billto as BillTo,
                oh.ord_company as OrderBy, --- oh.ord_customer as OrderBy, ---> PTS# 66418
                oh.ord_refnum as RefNum,     
                la.lgh_type1 as LghType1, 
                la.lgh_type2 as LghType2, 
                la.mpp_teamleader as TeamLeader, 
                oh.ord_status as OrderStatus, 
                la.mov_number as mov_number, legheader.lgh_etaalert1 as EtaStatus,  legheader.lgh_etacomment as EtaComment,
                oh.ord_priority as 'Priority', 
                oh.ord_shipper as ord_shipper,
                oh.ord_consignee as ord_consignee,
                la.cmp_id_start as cmp_id_start,
                la.lgh_startcity as lgh_startcity,
                la.cmp_id_end as cmp_id_end,
                la.lgh_endcity as lgh_endcity,
                la.lgh_comment as lgh_comment,
                la.lgh_trc_comment as lgh_trc_comment,
                oh.ord_remark as Remarks,
                (select IsNull (mpp_gps_date, '') from manpowerprofile where manpowerprofile.mpp_id = oh.ord_driver1) as GPSDate,
                (select IsNull (mpp_gps_desc, '') from manpowerprofile where manpowerprofile.mpp_id = oh.ord_driver1) as GPSLocation,
                (select CAST(SUM(PD.pyd_amount)As Decimal (10,2))  from Paydetail PD inner join Legheader L on( L.lgh_number = PD.lgh_number) 
                and (L.lgh_carrier = PD.asgn_id) and (PD.ord_hdrnumber = L.ord_hdrnumber)and l.ord_hdrnumber<>0 and l.ord_hdrnumber is not NULL and PD.asgn_type ='CAR' Group by PD.pyd_amount) as 'Pay_Total'
                from legheader_active la join legheader on (legheader.lgh_number = la.lgh_number)
                   left outer join orderheader oh on (la.ord_hdrnumber = oh.ord_hdrnumber)     
               WHERE    la.lgh_outstatus <> 'CMP' 
                        AND isnull(la.ord_hdrnumber, 0) = 0

        ) a
       left outer join company pc on (a.ord_shipper = pc.cmp_id)    
       left outer join company cc on (a.ord_consignee = cc.cmp_id)  
       join company fc on (a.cmp_id_start = fc.cmp_id)    
       join city fcy on (a.lgh_startcity = fcy.cty_code)    
       join company lc on (a.cmp_id_end = lc.cmp_id)    
       join city lcy on (a.lgh_endcity = lcy.cty_code)




GO
GRANT SELECT ON OperationsTripViewDetails_Venture_NOPAY TO PUBLIC
GO
sql sql-server-2016 ssms-2016
1个回答
0
投票

你把dbo.GetMinutesAway(a.mov_number)) -Query成一个单一的选择,所以它需要的任何值。

我明白你的问题,你想按任何行的总结。因此,一个可能的解决方案:

select a.OrderNumber, 
    a.DispStatus, a.OrderHeaderNumber, a.ord_shipper, a.ord_consignee,  
    a.StartDate, ISNULL(fc.cmp_id, '') as OriginId, ISNULL(fc.cmp_name, '') as OriginName, fcy.cty_nmstct as OriginCity, fcy.cty_state as OriginState, fcy.cty_zip as OriginZip,     
    a.EndDate, ISNULL(lc.cmp_id, '') as FinalId, ISNULL(lc.cmp_name, '') as FinalName, lcy.cty_nmstct as FinalCity, lcy.cty_state as FinalState, lcy.cty_zip As FinalZip,   
    (select sum(stp_lgh_mileage) from stops (nolock) where stops.lgh_number = a.lgh_number) as Mileage, a.Weight, a.Revenue,     
    a.StopCount, a.Driver1, a.Driver1Name, a.Tractor, a.Trailer1,     
    a.Carrier, a.Driver2, a.Driver2Name, a.Trailer2, a.TrailerType,     
    a.CmdCode, a.CmdDescription, a.CmdCount,    
    a.RevType1, a.RevType1Name, a.RevType2, a.RevType2Name, a.RevType3, a.RevType3Name, a.RevType4, a.RevType4Name,
    a.BookingTerminal, a.ExecutingTerminal, a.RouteId,     
    a.lgh_number, a.TotalMailStatus, a.TotalMailStatusName, a.InStatus,     
    a.BookedBy, a.BillTo, a.OrderBy, a.RefNum,     
    pc.cmp_id as PickupId, pc.cmp_name as PickupName, pc.cty_nmstct as PickupCity, pc.cmp_state as PickupState, pc.cmp_zip as PickupZip, pc.cmp_region1 as PickupRegion1, 
    pc.cmp_region2 as PickupRegion2, pc.cmp_region3 as PickupRegion3, pc.cmp_region4 as PickupRegion4,
    a.Leg_Start, a.Leg_End, a.Leg_StartRegion1, a.Leg_StartRegion2, a.Leg_StartRegion3, a.Leg_StartRegion4,
    a.Leg_EndRegion1,  a.Leg_EndRegion2, a.Leg_EndRegion3, a.Leg_EndRegion4, 
    cc.cmp_id as ConsigneeId, cc.cmp_name as ConsigneeName, cc.cty_nmstct as ConsigneeCity, cc.cmp_zip as ConsigneeZip, cc.cmp_state as ConsigneeState, cc.cmp_region1 as ConsigneeRegion1, 
    cc.cmp_region2 as ConsigneeRegion2, cc.cmp_region3 as ConsigneeRegion3, cc.cmp_region4 as ConsigneeRegion4,

    a.LghType1, 
    (select top 1 [name] from labelfile (nolock) where labeldefinition = 'LghType1' and abbr = a.LghType1) as LghType1Name, 
    a.LghType2, (select top 1 [name] from labelfile (nolock) where labeldefinition = 'LghType2' and abbr = a.lghtype2) as LghType2Name,
    a.TeamLeader, (select top 1 [name] from labelfile(nolock) where labeldefinition = 'TeamLeader' and abbr = a.TeamLeader) As TeamLeaderName,     
    a.OrderStatus, (select top 1 [name] from labelfile (nolock) where labeldefinition = 'DispStatus' and abbr = a.OrderStatus) as OrderStatusName, 
    a.mov_number, a.EtaStatus, a.EtaComment, a.[Priority],
     a.lgh_comment,
     a.lgh_trc_comment,
     a.Remarks,
     a.GPSDate,
     a.GPSLocation,
     a.Pay_Total,
    dbo.GetMinutesAway(a.mov_number) As MinutesAway

从...

...

Group by a.OrderNumber, 
        a.DispStatus, a.OrderHeaderNumber, a.ord_shipper, a.ord_consignee,  
        a.StartDate, ISNULL(fc.cmp_id, '') as OriginId, ISNULL(fc.cmp_name, '') as OriginName, fcy.cty_nmstct as OriginCity, fcy.cty_state as OriginState, fcy.cty_zip as OriginZip,     
        a.EndDate, ISNULL(lc.cmp_id, '') as FinalId, ISNULL(lc.cmp_name, '') as FinalName, lcy.cty_nmstct as FinalCity, lcy.cty_state as FinalState, lcy.cty_zip As FinalZip,   
        (select sum(stp_lgh_mileage) from stops (nolock) where stops.lgh_number = a.lgh_number) as Mileage, a.Weight, a.Revenue,     
        a.StopCount, a.Driver1, a.Driver1Name, a.Tractor, a.Trailer1,     
        a.Carrier, a.Driver2, a.Driver2Name, a.Trailer2, a.TrailerType,     
        a.CmdCode, a.CmdDescription, a.CmdCount,    
        a.RevType1, a.RevType1Name, a.RevType2, a.RevType2Name, a.RevType3, a.RevType3Name, a.RevType4, a.RevType4Name,
        a.BookingTerminal, a.ExecutingTerminal, a.RouteId,     
        a.lgh_number, a.TotalMailStatus, a.TotalMailStatusName, a.InStatus,     
        a.BookedBy, a.BillTo, a.OrderBy, a.RefNum,     
        pc.cmp_id as PickupId, pc.cmp_name as PickupName, pc.cty_nmstct as PickupCity, pc.cmp_state as PickupState, pc.cmp_zip as PickupZip, pc.cmp_region1 as PickupRegion1, 
        pc.cmp_region2 as PickupRegion2, pc.cmp_region3 as PickupRegion3, pc.cmp_region4 as PickupRegion4,
        a.Leg_Start, a.Leg_End, a.Leg_StartRegion1, a.Leg_StartRegion2, a.Leg_StartRegion3, a.Leg_StartRegion4,
        a.Leg_EndRegion1,  a.Leg_EndRegion2, a.Leg_EndRegion3, a.Leg_EndRegion4, 
        cc.cmp_id as ConsigneeId, cc.cmp_name as ConsigneeName, cc.cty_nmstct as ConsigneeCity, cc.cmp_zip as ConsigneeZip, cc.cmp_state as ConsigneeState, cc.cmp_region1 as ConsigneeRegion1, 
        cc.cmp_region2 as ConsigneeRegion2, cc.cmp_region3 as ConsigneeRegion3, cc.cmp_region4 as ConsigneeRegion4,

        a.LghType1, 
        (select top 1 [name] from labelfile (nolock) where labeldefinition = 'LghType1' and abbr = a.LghType1) as LghType1Name, 
        a.LghType2, (select top 1 [name] from labelfile (nolock) where labeldefinition = 'LghType2' and abbr = a.lghtype2) as LghType2Name,
        a.TeamLeader, (select top 1 [name] from labelfile(nolock) where labeldefinition = 'TeamLeader' and abbr = a.TeamLeader) As TeamLeaderName,     
        a.OrderStatus, (select top 1 [name] from labelfile (nolock) where labeldefinition = 'DispStatus' and abbr = a.OrderStatus) as OrderStatusName, 
        a.mov_number, a.EtaStatus, a.EtaComment, a.[Priority],
         a.lgh_comment,
         a.lgh_trc_comment,
         a.Remarks,
         a.GPSDate,
         a.GPSLocation,
         a.Pay_Total
© www.soinside.com 2019 - 2024. All rights reserved.