簡體   English   中英

t-sql:學術界,尋求更高效/更好的查詢方式

[英]t-sql: academic, looking for more efficient/better way to query

該代碼有效,但是看起來很“老派”。 有沒有人有更好的方法可以在單個查詢中選擇並分組? 基本上,這只是一個通用設置,只有一個標題表,一個用於拾取的子標題表,一個用於放置的子標題表以及每個細節表。

 select h.id
  ,h.col1 as Customer
  ,h.col2 as Req
  ,d.subid as DropId
  ,d.col1 as DropCity
  ,d.col2 as DropLoc
  ,dd.detid as DropDetailId
  ,dd.col1 as DropSpot
  ,dd.col2 as DropAWBorPackage
  ,NULL as PickupId
  ,NULL as PickUpCity
  ,NULL as PickUpLoc
  ,NULL as PickupDetailId
  ,NULL as PickupLoc
  ,NULL as PickupAWBorPackage
 from [scratch].GenericHeader h
   inner join [scratch].GenericSubHeader d on d.id = h.id
   inner join [scratch].GenericDetail dd on dd.id = h.id
     and dd.id = d.id
     and dd.subid = d.subid
 UNION ALL   
  select h.id
   ,h.col1 as Customer
   ,h.col2 as Req
   ,NULL as DropId
   ,NULL as DropCity
   ,NULL as DropLoc
   ,NULL as DropDetailId
   ,NULL as DropSpot
   ,NULL as AWBorPackage
   ,p.sub2id as PickupId
   ,p.col1 as PickUpCity
   ,p.col2 as PickUpLoc
   ,pp.det2id as PickupDetailId
   ,pp.col1 as PickupLoc
   ,pp.col2 as PickupAWBorPackage
  from  [scratch].GenericHeader h
    inner join [scratch].GenericSubHeader2 p on p.id = h.id
    inner join [scratch].GenericDetail2 pp on pp.id = h.id
      and pp.id = p.id
      and pp.sub2id = p.sub2id
  order by Req,DropId,DropDetailId,PickupId,PickupDetailId

我認為沒有一種方法可以在一個SQL語句中獲得相同的數據。 您可能要進行兩個SQL查詢,一個查詢用於放置數據,第二個查詢用於拾取數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM