【问题标题】:Multiple SELECT on the same table同一张表上的多个 SELECT
【发布时间】:2015-07-03 10:17:44
【问题描述】:

我想从 atbv_Sales_Orders 和 atbv_Sales_prds 视图中获取数据。因此,我需要加入有关 Domain 和 ProductID 字段的那些视图。尽管如此,我还想为 Quantity 字段创建别名“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

【问题讨论】:

    标签: sql sql-server-2008 select join


    【解决方案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
    

    【讨论】:

    • 谢谢。当我将 SELECT pv.Quantity 添加为 Total 时,有什么想法,行开始成倍增加?
    • 添加 pv.Quantity 作为 Total 不应该改变行数,只在结果中添加一个新的列,但保持相同的行数。也许您可以修改您的问题,在表格中添加一些详细信息。
    【解决方案2】:

    我不完全确定您所说的“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
    

    【讨论】:

      【解决方案3】:

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

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 2015-05-18
        • 2014-07-11
        • 2015-07-24
        相关资源
        最近更新 更多