0

ビューに変換したい次のクエリがあります。

SELECT
  PartNum,
  SUM(IF(DAYOFWEEK(DeliveryDate) = '2', value, NULL)) AS 'Mon',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '3', value, NULL)) AS 'Tue',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '4', value, NULL)) AS 'Wed',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '5', value, NULL)) AS 'Thu',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '6', value, NULL)) AS 'Fri',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '7', value, NULL)) AS 'Sat',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '1', value, NULL)) AS 'Sun',
  SUM(IF(DeliveryDate > DATE_ADD(CURDATE(),INTERVAL 7 DAY), value, NULL)) AS 'Future'
FROM (
  SELECT PartNum, DeliveryDate , SUM(Ordered) value FROM v_archived_items_due
    GROUP BY PartNum, DeliveryDate
    ) t
  GROUP BY PartNum;

ビューとして保存しようとすると、次のエラーが発生します。

1349 - ビュー SELECT の FROM 句にサブクエリが含まれています。

クエリはそれ自体で正常に機能します。どうすればそれをビューに変換できますか?

4

2 に答える 2

0

MySQL ではサブクエリを表示できないため、サンプル データを表示せずに、サブクエリを使用せずにこれを再処理する方法を確認します。これは期待どおりに機能しているため、サブクエリのビューを作成します。

create view view1 as
    SELECT PartNum, DeliveryDate , SUM(Ordered) value 
    FROM v_archived_items_due
    GROUP BY PartNum, DeliveryDate;

次に、クエリでこのビューを呼び出します。

SELECT
  PartNum,
  SUM(IF(DAYOFWEEK(DeliveryDate) = '2', value, NULL)) AS 'Mon',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '3', value, NULL)) AS 'Tue',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '4', value, NULL)) AS 'Wed',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '5', value, NULL)) AS 'Thu',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '6', value, NULL)) AS 'Fri',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '7', value, NULL)) AS 'Sat',
  SUM(IF(DAYOFWEEK(DeliveryDate) = '1', value, NULL)) AS 'Sun',
  SUM(IF(DeliveryDate > DATE_ADD(CURDATE(),INTERVAL 7 DAY), value, NULL)) AS 'Future'
FROM view1
GROUP BY PartNum;
于 2012-12-18T17:23:41.653 に答える
0

設計どおりの動作

http://dev.mysql.com/doc/refman/5.1/en/create-view.html

サブクエリからビューを作成し、これを使用する必要があります。

于 2012-12-18T17:24:13.207 に答える