2012-08-30 73 views
0

我根據供應商提供的產品類型將供應商記錄插入到我的表中。INSERT INTO,基於WHERE子句中的COUNT

我正在做這樣的事情;

INSERT INTO RedItems (ID, Name, NumItems) 
SELECT ID, Name, NULL 
FROM supplier 
WHERE status = 'Supplier' 

不過,我只想補充一點,已經提供了至少一個「紅色」項目的供應商。

「紅」項沒有特定的字段,「紅」是產品欄中的一種類型。

如何用這種方式構造我的WHERE子句?

編輯

供應商(表)

ID / Name / Status / Product 
1 / Smith / Supplier / Red 
2 / Baxter / Supplier / Round 

RedItems(表)

ID / Name / NumItems 
1 / Smith /  23 

哪裏NUMITEMS是從供應商的總(紅色)項目。

+1

請顯示一些樣品數據 –

+0

您在哪裏存儲紅色項目的指標? – Taryn

+0

紅色是'產品'領域的東西。 I.E.在產品領域內可能有紅色,藍色,圓形,方形等。 – William

回答

1

如果數據是在同一個表,那麼你可以做這樣的事情:

INSERT INTO RedItems (ID, Name, NumItems) 
SELECT ID, Name, count(product) 
FROM mytable 
WHERE status = 'Supplier' 
    AND product = 'red' 
GROUP BY ID, Name 

如果沒有,那麼

INSERT INTO RedItems (ID, Name, NumItems) 
SELECT t1.ID, t1.Name, count(p.product) 
FROM mytable t1 
INNER JOIN products p 
    ON t1.id = p.supplierID 
WHERE t1.status = 'Supplier' 
    and p.product = 'red' 
GROUP BY t1.ID, t1.Name 
1
INSERT INTO RedItems (ID, Name, NumItems) 
SELECT suppliers.ID, suppliers.Name, count(distinct products.id) 
FROM suppliers 
    inner join products on suppliers.id = products.supplierid 
WHERE status = 'Supplier' and products.type='red' 
group by suppliers.ID, suppliers.Name 
2

我只是想添加已供應至少一個「紅色」的供應商 商品

INSERT INTO RedItems (ID, Name, NumItems) 
SELECT ID, Name, COUNT(Product) 
FROM supplier 
WHERE status = 'Supplier' 
    AND Product = 'RED' 
GROUP BY ID, Name 
HAVING COUNT(Product) >= 1