我要进行查询,列出了高于平均水平的猫长卖猫? 我有五个表:

动物,售,AnimalOrderItem,AnimalOrder,和SaleAnimal

  

动物表:AnimalID,名称,类别   (猫,狗,鱼)

     

SaleAnimal表:SaleID,AnimalID,   SalePrice

     

销售表:SaleID,日期,雇员,   客户id

     

AnimalOrderItem表:订单,   AnimalID,成本

     

AnimalOrder:订单,订购日期,   ReceivingDate,        供应商ID,ShippingCost,雇员

有是其他表我不认为他们对查询的效果。

我觉得以下...进行查询,以计算日为所有前卖:

[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意外结束   命令

任何建议!请

有帮助吗?

解决方案

查询可以与子查询相结合。例如,

select *
from (
    select * 
    from mytable
) subquery

应用这种模式,您的问题似乎相当简单。

其他提示

我看不到,与相匹配的闭合支架上的SELECT AVG

好吧,我想出了这一点:

    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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top