我正在使用UNION ALL,然后全局需要ORDER BY

时间:2011-11-30 14:29:57

标签: mysql

我可以通过flt.flt_Date_Start订购(Globaly union)如果有任何解决方案请帮助我 在这里,我尝试按日期实现订单全球请帮助我 我可以通过flt.flt_Date_Start订购(Globaly union)如果有任何解决方案请帮助我 在这里,我尝试按日期实现订单全球请帮助我 我可以通过flt.flt_Date_Start订购(Globaly union)如果有任何解决方案请帮助我 在这里,我尝试按日期实现订单全球请帮助我

  (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)

1 个答案:

答案 0 :(得分:0)

您只需要进行子选择:

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