2014-10-09 47 views
0

如果我沒有正確地問這個問題,我很抱歉。我需要編寫一個針對日誌的查詢。在日誌中有一個列注,用於跟蹤過程中每個步驟的成功。我需要的是,如果工作訂單「fjobno」在日期範圍內的筆記字段中具有WCutSuccess ...並且同一工作訂單「fjobno」具有ASSYSuccess ...我想在其他日期範圍內列出它。我似乎無法弄清楚。我相信它很簡單。我相信人們一直都在這樣做。如果有人能指出我正確的方向,我將不勝感激。使用具有兩個不同參數的同一列SQL服務器

select 
    inm.fgroup, inm.fpartno, jod.fjobno, sqb.note 
from 
    inmast as inm 
left join 
    jodbom as jod on inm.fpartno = jod.fbompart 
left join 
    sqbclog as sqb on jod.fjobno = sqb.job 
where 
    (inm.fgroup = 'isl' or inm.fgroup = 'iss') 
    and 
    (sqb.note = 'WCutSuccess...' 
    and sqb.stamp between '09/01/2014' and '10/01/2014') 
    and 
    (sqb.note = 'ASSYSuccess...' 
    and sqb.stamp between '10/01/2014' and '10/09/2014') 
+0

我認爲,一些示例數據會使這非常容易。對於任何給定的工作訂單,這些值是否在不同的行上? – Andrew 2014-10-09 16:08:28

回答

1

我改變您的查詢一點,所以它使用IN,而不是col = something or col = somethingelse

我也改變了你在日期中選擇範圍的方式。

SELECT inm.fgroup, 
     inm.fpartno, 
     jod.fjobno, 
     sqb.note 
FROM inmast AS inm 
LEFT JOIN jodbom AS jod 
    ON inm.fpartno = jod.fbompart 
LEFT JOIN sqbclog AS sqb 
    ON jod.fjobno = sqb.job 
WHERE inm.fgroup IN ('isl','iss') 
AND (
    ( sqb.note = 'WCutSuccess...' 
     AND sqb.stamp >= '20140109' 
     AND sqb.stamp < '20140111') 
    OR(sqb.note = 'ASSYSuccess...' 
     AND sqb.stamp >= '20140110' 
     AND sqb.stamp < '20140911') 
    ) 
+0

感謝我正在尋找的是它說WCutSuccess AssySuccess爲同一個工作訂單 – Turtleman10 2014-10-09 18:14:35

相關問題