0
我有一列包含項目的連接列表。這些組件中的每一個都代表我從不同的表(tblComponents)獲得的一個id。我試圖使用各個項目(使用凡在我子查詢中)找到每個項目的每個組件的數量:SQL SELECT Sum子查詢返回NULL
SELECT s.title 'Product SKU'
,s.price 'Item Price'
,CASE WHEN (select SUM(c.qty) from tblComponents where CID IN (s.Items)) = 0
THEN 1
ELSE c.qty
END 'Items Qty'
FROM tblsku s JOIN tblcomponent c ON c.idtblcomponent = s.idtblcomponent
JOIN tblgrade g ON g.idtblgrade = c.idtblgrade
WHERE --etc...
我試圖在WHERE中的值分開使用:
'''' + REPLACE(s.Items, ',', ''', ''') + ''''
它仍然返回空值。
SUM()返回一個空值。
樣品:
tblSku - 物品字段包含值1,2(在相同的字段)
tblComponent CID 1包含的2數量,CID 2含有的3
數量在這種情況下我想顯示5的總和場「項目數量」
'tblSku分成數行 - 物品字段包含值1,2(在相同的字段)'這是否意味着有1項紀錄並且該記錄在「Items」字段中具有值「1,2」?如果是這樣,那麼你的問題是:'IN'不能將逗號分隔的字符串識別爲值列表;它只是一個單一的字符串值。 –
對。我試圖改變它,所以1,2將讀爲'1','2',但我仍然得到NULL。 – BrettKB
@BrettKB替換不起作用。檢查我的答案,看看你如何將字符串拆分成行 –