同一个表上有多个SELECT

时间:2015-07-03 10:17:44

标签: sql sql-server-2008 select join

我想从atbv_Sales_Orders和atbv_Sales_prds视图中获取数据。因此,我需要在Domain和ProductID字段上加入这些视图。尽管如此我还想创建别名" Total"对于数量字段(来自atbv_Sales_prds视图)。

我尝试使用WHERE EXISTS,但我失败了。

所以我需要从atbv_Sales_prds添加ProductName和Supplier。我目前编写的代码:(只有1个选择)。

SELECT DISTINCT p.Domain, p.OrderID, p.ProductID, p.Amount, p.Value,
p.PrimKey, p.Created, p.CreatedBy
FROM atbv_Sales_Orders p
  JOIN atbv_Sales_prds pv
    ON p.Domain = pv.Domain
  JOIN atbv_Sales_prds v
    ON pv.ProductID = v.ProductID

3 个答案:

答案 0 :(得分:1)

如果我理解你的问题,这是加入你的桌子的解决方案:

SELECT DISTINCT p.Domain, p.OrderID, p.ProductID, p.Amount, p.Value,
                p.PrimKey, p.Created, p.CreatedBy, pv.Quantity as Total
FROM atbv_Sales_Orders p
     JOIN atbv_Sales_prds pv
       ON p.Domain = pv.Domain AND pv.ProductID = v.ProductID

答案 1 :(得分:0)

我不完全确定你的“Total”别名是什么意思,但这是我对此的看法。

SELECT DISTINCT p.Domain, p.OrderID, p.ProductID, p.Amount, p.Value,
                pv.ProductName as ProductName, pv.Supplier as Supplier,
                p.PrimKey, p.Created, p.CreatedBy, pv.Quantity as Total
FROM atbv_Sales_Orders p
JOIN atbv_Sales_prds pv 
  ON p.Domain = pv.Domain AND pv.ProductID = v.ProductID

答案 2 :(得分:0)

我想你想SUM()所有的quanitites,但这不是很清楚。您已经有了其他选项的答案。

SELECT   p.Domain, p.OrderID, p.ProductID, p.Amount, p.Value,
         p.PrimKey, p.Created, p.CreatedBy, pv.ProductName,  
         pv.Supplier, SUM(pv.Quantity) AS Total
FROM     atbv_Sales_Orders p
JOIN     atbv_Sales_prds pv
ON       p.Domain = pv.Domain AND v.ProductID = pv.ProductID
GROUP BY p.Domain, p.OrderID, p.ProductID, p.Amount, p.Value,
         p.PrimKey, p.Created, p.CreatedBy, pv.ProductName, pv.Supplier
相关问题