2016-09-22 7 views
0

SallyのPet Storeデータベースを使用して、私は平均的なネコよりも長い時間がかかりました。私はSQLデータベース内のアイテムの平均を見つける方法

SELECT AVG (`SaleDate`) AS `Longer to Sale`.... 

.....それは多分、次のように出始めるべきであると考えているが、私は私に言うだろう、データベース内の何も存在しない場合AVGを取得する方法について混乱してしまいます。 AnimalsSaleAnimalAnimalOrderItem:誰もが、私が使用される唯一のテーブルがあると思い

enter image description here

を見ることができるので、ここで

は、アクセス関係の形でデータベースです。

しかし、いくつかの助けを感謝するでしょうし、おそらく取得に良い説明それ

+1

サンプル・データと結果が参考になると予想... – sgeddes

+0

は、私はあなたが 選択AVE(DATEDIFF( "DD"、receivedate、saledate))のような販売からAnimalOrderとsaledateからreceivedateを使用する必要があると思う – Kostya

答えて

0

ステップ1:猫を販売する平均時間は何ですか?

DECLARE @avg INT; 

SELECT @avg = AVG(DATEDIFF(day, ao.ReceiveDate, s.SaleDate)) 
FROM Animal a 
    INNER JOIN SaleAnimal asale ON (a.AnimalID = asale.AnimalID) 
    INNER JOIN Sale s ON (asale.SaleID = s.SaleID) 
    INNER JOIN AnimalOrderItem aoi ON (a.AnimalID = aoi.AnimalID) 
    INNER JOIN AnimalOrder ao ON (aoi.OrderID = ao.OrderID) 
WHERE a.Breed = 'cat'; 

ステップ2:売り切れた猫の数は何人ですか?

SELECT COUNT(1) 
FROM Animal a 
    INNER JOIN SaleAnimal asale ON (a.AnimalID = asale.AnimalID) 
    INNER JOIN Sale s ON (asale.SaleID = s.SaleID) 
    INNER JOIN AnimalOrderItem aoi ON (a.AnimalID = aoi.AnimalID) 
    INNER JOIN AnimalOrder ao ON (aoi.OrderID = ao.OrderID) 
WHERE a.Breed = 'cat' 
    AND DATEDIFF(day, ao.ReceiveDate, s.SaleDate) > @avg; 
+0

申し訳ありません、 "or"は "ao"だったはずです(私は私の答えでそれを修正しました)。これがSQL構文です。あなたはアクセスのためにそれを微調整する必要があるかもしれませんが、すべての一般的なプリンシパルがあなたに従うべきです。 – jhilden

関連する問題