1

私は3つのテーブルを持っています:

  • 注文:
    • orders_id
    • 購入日
    • ..。
  • orders_products:
    • orders_products_id
    • orders_id
    • products_id
    • products_name
    • products_quantity
    • ..。
  • products_warehouses:
    • products_id
    • Warehouses_id
    • product_quantity_in_warehouse

ここで、次の情報を含むテーブルが必要です。

  • 現在の日付
  • products_id
  • products_name
  • Warehouses_id
  • current_quantity_in_warehouse
  • Sold_yesterday

私はこれまでに次のものを持っています:

SELECT DISTINCT  CURRENT_DATE AS `date`
                 orpr.products_id AS products_id
                 orpr.products_name AS products_name
                 pwq.warehouses_id AS warehouses_id
                 pwq.products_quantity AS current_quantity_in_warehouse
                 (  SELECT SUM(orpr.products_quantity)
                    FROM `products_warehouses` wpq
                    INNER JOIN `orders_products` orpr ON pwq.products_id = orpr.products_id
                    INNER JOIN `orders` or ON orpr.orders_id = or.orders_id
                    WHERE pwq.products_id = ??
                    AND   pwq.warehouses_id = ?? ) AS sold_yeserday
FROM             `orders_products` orpr
INNER JOIN       `orders` or ON orpr.orders_id = or.orders_id
INNER JOIN       `products_warehouses pwq ON pwq.products_id = orpr.products_id;

結果の各行に類似した??のproducts_idとwarehouses_idの場所に必要なものがあります。

誰かがselect内でselectを使用する方法の簡単な例を入手した場合(内部selectはselect itsinからのwhere-conditionIDを使用し、もちろん各行を変更します)、私ができる限り、それも問題ありません。私の問題を解決するために例を再現してください。

前もって感謝します、

グリーツ、ケビンC

4

2 に答える 2

0

内側のSELECTステートメントを抽出し、結果をテーブルに配置する必要があります。そうすれば、外側のselectでそのテーブルと結合できます。

SELECT SUM(orpr.products_quantity) As 'Sold_yesterday', pwd.products_id, pwd.warehouses_id
INTO #tempTable
FROM `products_warehouses` wpq
INNER JOIN `orders_products` orpr ON pwq.products_id = orpr.products_id
INNER JOIN `orders` or ON orpr.orders_id = or.orders_id


SELECT DISTINCT  CURRENT_DATE AS `date`
orpr.products_id AS products_id
orpr.products_name AS products_name
pwq.warehouses_id AS warehouses_id
pwq.products_quantity AS current_quantity_in_warehouse                
FROM             `orders_products` orpr
INNER JOIN       `orders` or ON orpr.orders_id = or.orders_id
INNER JOIN       `products_warehouses pwq ON pwq.products_id = orpr.products_id;
INNER JOIN       '#tempTable' tt On tt.products_id = pwd.products_id AND tt.warehouses_id = pwd.warehouses_id
于 2012-09-19T11:38:04.547 に答える
0
SELECT
    CURRENT_DATE AS `date`,
    orpr.products_id AS products_id,
    orpr.products_name AS products_name,
    pwq.warehouses_id AS warehouses_id,
    pwq.products_quantity AS current_quantity_in_warehouse,
    SUM(orpr.products_quantity) AS sold_yeserday
FROM             
    orders_products orpr
    INNER JOIN       
    products_warehouses pwq ON pwq.products_id = orpr.products_id;
group by orpr.products_id, pwq.warehouses_id
order by orpr.products_id, pwq.warehouses_id
于 2012-09-19T11:44:22.497 に答える