2017-12-13 7 views
0

でも、すべての製品で、コンピュータの価格を下げ20%以上4つの申し出私がする必要が

「20%で、コンピュータの価格を削減し、4つの以上の申し出でも、すべての製品」I次のクエリと数学を持っています間違っていますが、出力に似ています。

SELECT 
    o.supp_id, p.prod_id, 
    CAST(ROUND(SUM(o.price * .80), 3) AS FLOAT) as 'Price', 
    o.Quantity 
FROM 
    tb_product p, tb_offers o 
WHERE 
    p.name = 'computer' 
    AND p.prod_ID = o.prod_ID 
GROUP BY 
    o.supp_id, p.prod_ID, quantity 

UNION 

SELECT 
    supp_id, p.prod_id, 
    CAST(ROUND(SUM(tb_offers.price * .80), 3) AS FLOAT) as 'Price', 
    Quantity 
FROM 
    tb_product p, tb_offers 
WHERE 
    tb_offers.prod_id = p.prod_ID 
GROUP BY 
    tb_offers.supp_id, p.prod_id, quantity 
HAVING 
    COUNT(p.prod_Id) > 4 

組合上記のクエリが出て動作しますが、一番下の1は、より以上4つの申し出を持つ製品である必要があり、何も(返しません。

は私の製品を示す底面クエリですあなたは結果を合計しているなぜあなただ​​けの価格を変更する場合

Tb_Consumer - Name, City, Con_ID 
Tb_Supplier - Name, City, Supp_ID 
Tb_Offers - Name, Quantity, Prod_ID, Supp_ID 
Tb_Product - Name, Prod_ID 
Tb_Requests - Name, Quantity, Prod_ID, Con_ID 
Tb_Transactions- Tran_ID, Supp_ID, Con_ID, Quantity, Price 
+0

ような何かを:http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits([キックする悪い習慣を旧スタイルを使用してジョイン] ANSI - ** 92 **の*正しい* ANSI 'JOIN'構文で置き換えられた古いスタイルの*カンマで区切られたテーブルのリスト*スタイルは、 SQL標準(** 25年前**)とその使用はお勧めしません –

答えて

0

私はあなたが必要だと思う:?以上4申し出て

私は、次の表がありますか? ....

SELECT o.supp_id 
     , p.prod_id 
     , CAST((o.price * 0.80) AS DECIMAL(18,3)) as [Price] 
     , o.Quantity 
FROM tb_product p 
INNER JOIN tb_offers o ON p.prod_ID = o.prod_ID 
WHERE p.name = 'computer' 
OR EXISTS (SELECT 1 
      FROM tb_product p1 
      WHERE p.prod_ID = p1.prod_ID 
      HAVING COUNT(p1.prod_Id) > 4 
      ) 
関連する問題