2009-05-15 8 views
0

平均的な猫よりも長い時間を要した猫を表示するクエリを作成したいのですか? 私は5つのテーブルを持っている:複数のSQLクエリを組み合わせる

動物、販売、AnimalOrderItem、AnimalOrder、およびSaleAnimal

動物のテーブル:AnimalID、名前、カテゴリー (猫、犬、魚)

SaleAnimalテーブル:SaleID 、AnimalID、 SalePrice

販売テーブル:SaleID、日付、社員コード、 得意

AnimalOrderItemテーブル:私は、彼らが影響を与えるとは思わない他のテーブルがあります受注、受注日、 ReceivingDate、 仕入先、ShippingCost、社員

:受注、 AnimalIDは、

AnimalOrderの費用クエリ。

私が考え、次の...すべての例:

[SaleDate]-[ReceiveDate] AS DaysToSell 
Have the INNER JOIN built: 
Sale INNER JOIN ((AnimalOrder INNER JOIN (Animal INNER JOIN AnimalOrderItem 
ON Animal.AnimalID = AnimalOrderItem.AnimalID) ON AnimalOrder. 
OrderID = AnimalOrderItem.OrderID) INNER JOIN SaleAnimal ON Animal. 
AnimalID = SaleAnimal.AnimalID) ON Sale.SaleID = SaleAnimal.SaleID 

のために販売する日数を計算するためのクエリを作成し実行した後、上記のクエリ

SELECT AnimalID, Name, Category, DaysToSell 
WHERE Category="Cat" AND DaysToSell> 
(SELECT Avg(DaysToSell) 
FROM the earlier query 
WHERE Category="Cat" 
ORDER BY DaysToSell DESC; 

に基づいて別のクエリを作成します。質問するとエラーが表示される

ORA-00921:予期しないSQLの終了 コマンド

何か提案があります。私は

+0

助けが必要な場合は、質問の書式を設定してください。コピー&ペーストだけではありません。 –

+0

WOW、この質問にはいくつかの書式設定が必要です。 –

+0

私は亀裂を取るでしょう:) –

答えて

1

クエリは、サブクエリと組み合わせることができます。たとえば、

select * 
from (
    select * 
    from mytable 
) subquery 

このパターンを問題に適用するのはかなり簡単です。

+0

あなたはNebakanezerの提案のようにすることを意味しています。 – user98832

0

、私はこれを作ってみたください。

SELECT AnimalID, Name, Category, 
      [SaleDate]-[ReceiveDate] AS DaysToSell 
    FROM Sale INNER JOIN ((AnimalOrder INNER JOIN (Animal INNER JOIN AnimalOrderItem ON Animal.AnimalID = AnimalOrderItem.AnimalID) ON AnimalOrder.OrderID = AnimalOrderItem.OrderID) 
      INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID) ON Sale.SaleID = SaleAnimal.SaleID 
    WHERE Category = "Cat" 
    AND ([SaleDate]-[ReceiveDate]) > (SELECT AVG([SaleDate]-[ReceiveDate]) 
             FROM Sale INNER JOIN ((AnimalOrder INNER JOIN (Animal INNER JOIN AnimalOrderItem ON Animal.AnimalID = AnimalOrderItem.AnimalID) ON AnimalOrder.OrderID = AnimalOrderItem.OrderID) 
             INNER JOIN SaleAnimal ON Animal.AnimalID =SaleAnimal.AnimalID) ON Sale.SaleID = SaleAnimal.SaleID 
             WHERE Category = "Cat") 
    ORDER BY ([SaleDate]-[ReceiveDate]) DESC; 
+0

そのためにありがとう... しかし、私は本当に2つのクエリを一緒に接続し、それを働かせる助けを必要とします – user98832

0

[OK]をavgを選択して一致する閉じ括弧が表示されていない

+0

私は表現の誤りが見つからない..本当にあなたの助け男の – user98832

関連する問題