sql >> データベース >  >> RDS >> Sqlserver

SQL SELECT 複数条件多対多関係

    SELECT p2p.PageID
    FROM
        PageToProduct as p2p
        inner join Product as pr
            on p2p.Product = pr.Product
        inner join PageToProductToRate as p2p2r
            on p2p2r.PageToProductID = p2p.PageToProductID
        inner join ProductRates as r
            on r.ProductRatesID = p2p2r.ProductRatesID 
    WHERE
              (pr.Product = 'ALMOND' AND r.CommissionType = 'PREMIUM' AND r.Rate = 0.25) 
          OR  (pr.Product = 'WALNUT' AND r.CommissionType = 'SERVICE FEE' AND r.Rate = 1.25)
          OR  (pr.Product = 'HAZELNUT' AND r.CommissionType = 'EXCESS' AND r.Rate = 1.68)
    GROUP BY p2p.PageID
    HAVING COUNT(*) = 3; /* requires all three are present, as long as no rows are duplicate */
    


    1. 1つのクエリで2つのテーブルの行をカウントするにはどうすればよいですか?

    2. MySQLを使用して、文字列から特定の文字を含む文字列の一部を削除します

    3. Oracle:グループの最大値を取得しますか?

    4. Oracleはwith句を使用してテーブルを作成します