0

このコードを使用してビューを作成したい:

SELECT t1.FirstName, t1.LastName, t2.Sum FROM Customer as t1,(SELECT CustomerID,Sum(Total) as Sum  FROM Invoice GROUP BY(CustomerID)) as t2 WHERE t1.CustomerID=t2.CustomerID 

私にとって理にかなっている方法は、

Create VIEW t2 as SELECT CustomerID,Sum(Total) as Sum  FROM Invoice GROUP BY(CustomerID)

Create VIEW CustomerInvoices as SELECT t1.FirstName, t1.LastName, t2.Sum FROM Customer as t1, t2  WHERE t1.CustomerID=t2.CustomerID  

しかし、それでは構文エラーが発生するため、メイン ビューで最初のビューを呼び出す方法がわかりません。

4

1 に答える 1

0

お気づきのように、この構文は MySQL では許可されていません (ただし、他のデータベースでは許可されています)。

SELECT t1.FirstName, t1.LastName, t2.Sum
FROM Customer as t1 JOIN
     (SELECT CustomerID,Sum(Total) as Sum  FROM Invoice GROUP BY(CustomerID)
     ) t2 
     ON t1.CustomerID = t2.CustomerID;

これは次のように言い換えることができます。

SELECT c.FirstName, c.LastName, sum(total) as sum
FROM Customer c JOIN
     Invoice i
     ON c.CustomerID = i.CustomerId
GROUP BY c.FirstName, c.LastName;

これはビューで機能します。

于 2015-04-10T01:16:22.003 に答える