2016-11-07 44 views
0

好的人。我只是新的寫這些查詢,所以去我的容易... 我想找到2個字段之間的最小日期,我已經找出瞭如何爲SUM做但不是MIN(顯然+不適用於分鐘...) 正如你將從下面看到的,第一行(**中的行)是不正確的(我知道不應該有一個,但我已經放棄了)。下一行是完美的,正是我想要實現與MIN代碼... 基本上我有2個表(ScanLine和庫存)我試圖從這兩個表中獲取Min ProductionDate,在相同的行...SQL Server 2014 - 如何找到兩個表之間的最短日期

**我不想使用別名的加入,我想盡可能避免使用UNION **

SELECT (SELECT min(inventory.productiondate)), 
     (SELECT min(scanline.productiondate)) AS OldDate, 
     (SELECT sum(Inventory.NetWeight)) + (SELECT sum(scanline.weight)) AS Wgt, 
     sum(inventory.units) AS Qty, 
     count(inventory.palletbarcode) AS Pallets 
FROM scowms.inventory 
     LEFT OUTER JOIN 
     scowms.scanline 
     ON scowms.inventory.barcode = scowms.scanline.barcode 
WHERE inventory.locationbarcode = '2D03D'; 
+0

請編輯您的問題,並提供樣本數據和預期結果。 –

+0

如果您只是希望兩個表中的獨立最小值不需要加入。 –

回答

0

您可以使用case獲得來自兩列最小:

select (case when min(i.productiondate) < min(s.productiondate) 
      then min(i.productiondate) 
      else coalesce(min(s.productiondate), min(i.productiondate)) 
     end) 
from scowms.inventory i left join 
    scowms.scanline s 
    on i.barcode = s.barcode 
where i.locationbarcode = '2D03D'; 

表別名是件好事。他們使查詢更容易編寫和閱讀。

+0

Gordon Linoff,作爲我提出的問題,他已經要求將最低日期定爲2列「Min ProductionDate來自這兩個表,同一行......」。請糾正我,如果我錯了 –

+0

@HardikParmar。 。 。在上下文中,我將它解釋爲「來自這兩個表的Min ProductionDate,在同一列」。這可能不準確,但提供的查詢具有兩個不同列中的兩個值。 –

相關問題