2011-11-30 35 views
-2

我可以订购由flt.flt_Date_Start(Globaly联盟)如果有任何解决方案,请帮助我 在这里,我试图通过日期,以实现订单在全球范围内,请帮助我 我可以order by flt.flt_Date_Start(Globaly union)如果有任何解决方案,请帮助我 在这里,我尝试通过日期全球达到秩序请帮助我 我可以通过flt.flt_Date_Start(Globaly union)订购如果有任何解决方案,请帮助我 在这里,我试图通过日期,以实现订单在全球范围内,请帮助我我使用UNION ALL,那么我想ORDER BY globaly

(Select 
flt.flt_Id as fltId, 
flttyp.flttyp_Name As FlightType, 
off.off_Name as offName, 
fltrte.fltrte_P1_Plt_Per_Id_Fk As pilot1Id, 
fltrte.fltrte_P2_Plt_Per_Id_Fk As pilot2Id, 
per1.per_Name As Pilot1Name, 
per2.per_Name As Pilot2Name, 
per1.per_Name As GrpPilotName, 
flt.flt_Date_Start as dtStrt, 
flt.flt_Date_End as dtEnd, 
air.air_Id as airId, 
flt.flt_Trip_Rpt_No as rptNo, 
flttyp.flttyp_Id as flttypId, 
flt.flt_Eng_Tim As EngT, 
flt.flt_Flt_Tim As FlyT, 
flt.flt_Wait_Tim As WaitT, 
(select sum(pltfltdtytim.pltfltdtytim_Tot_Dty_Tim) from pltfltdtytim where pltfltdtytim.pltfltdtytim_Flt_Id_Fk = flt.flt_Id and pltfltdtytim.pltfltdtytim_Per_Id_Fk=per1.per_Id) As DutyT, 
flt.flt_Route as fltRout 
From 
fltrte left Join 
flt On fltrte.fltrte_Flt_Id_Fk = flt.flt_Id left Join 
off On flt.flt_Off_Id_Fk = off.off_Id left Join 
air On flt.flt_Air_Id_Fk = air.air_Id left Join 
per per1 On fltrte.fltrte_P1_Plt_Per_Id_Fk = per1.per_Id left Join 
per per2 On fltrte.fltrte_P2_Plt_Per_Id_Fk = per2.per_Id left join 
flttyp On flt.flt_Flttyp_Id_Fk = flttyp.flttyp_Id 
where 
    flt.flt_Status <> 4 and per1.per_Name is not null and per1.per_Name !='' 
Group By 
    off.off_Name,flt.flt_Date_Start, 
    flt.flt_Trip_Rpt_No, flt.flt_Id, flttyp.flttyp_Name, flt.flt_Route, 
    flt.flt_Status 

Order By 
    flt.flt_Date_Start)  
union all 
(Select 
flt.flt_Id as fltId, 
flttyp.flttyp_Name As FlightType, 
off.off_Name as offName, 
fltrte.fltrte_P1_Plt_Per_Id_Fk As pilot1Id, 
fltrte.fltrte_P2_Plt_Per_Id_Fk As pilot2Id, 
per1.per_Name As Pilot1Name, 
per2.per_Name As Pilot2Name, 
per2.per_Name As GrpPilotName, 
flt.flt_Date_Start as dtStrt, 
flt.flt_Date_End as dtEnd, 
air.air_Id as airId, 
flt.flt_Trip_Rpt_No as rptNo, 
flttyp.flttyp_Id as flttypId, 
flt.flt_Eng_Tim As EngT, 
flt.flt_Flt_Tim As FlyT, 
flt.flt_Wait_Tim As WaitT, 
(select sum(pltfltdtytim.pltfltdtytim_Tot_Dty_Tim) from pltfltdtytim where pltfltdtytim.pltfltdtytim_Flt_Id_Fk = flt.flt_Id and pltfltdtytim.pltfltdtytim_Per_Id_Fk=per2.per_Id) As DutyT, 
flt.flt_Route as fltRout 
From 
fltrte left Join 
flt On fltrte.fltrte_Flt_Id_Fk = flt.flt_Id left Join 
off On flt.flt_Off_Id_Fk = off.off_Id left Join 
air On flt.flt_Air_Id_Fk = air.air_Id left Join 
per per1 On fltrte.fltrte_P1_Plt_Per_Id_Fk = per1.per_Id left Join 
per per2 On fltrte.fltrte_P2_Plt_Per_Id_Fk = per2.per_Id left join 
flttyp On flt.flt_Flttyp_Id_Fk = flttyp.flttyp_Id 
where 
    flt.flt_Status <> 4 and per2.per_Name is not null and per2.per_Name !='' 
Group By 
    off.off_Name,flt.flt_Date_Start, 
    flt.flt_Trip_Rpt_No, flt.flt_Id, flttyp.flttyp_Name, flt.flt_Route, 
    flt.flt_Status 

Order By 
    flt.flt_Date_Start) 
+0

您可以重写您的问题吗?对许多“请帮助我在这里我尝试”。 – Mualig

回答

0

你只需要做一个子查询:

SELECT ... dtStrt ... 
FROM (
    (SELECT ... as dtStrt, ... 
    FROM ... JOIN... WHERE...) 
    union all 
    (SELECT ... as dtStrt, ... 
    FROM ... JOIN... WHERE...) 
) as val 
ORDER BY dtStrt 
+0

其实,你不会 - 在UNION中的ORDER BY是违反最终结果集的。 MySQL在UNION'd语句中以per语句为基础支持ORDER BY,但只有当查询被括号/括号包围时 –