【问题标题】:SQL: LEFT JOIN SELECT STATEMENT to addd "Daily Sales Total" ColumnSQL: LEFT JOIN SELECT STATEMENT 添加“每日销售总额”列
【发布时间】:2011-02-22 14:47:42
【问题描述】:

我正在尝试创建一个查询,该查询将显示每次销售的详细信息以及另一列,该列将显示订单创建当天(创建日期)发生的每日总销售额

我有两个提供所需信息的查询,但我无法合并它们。我相信 LEFT JOIN SELECT 语句是实现此目的所必需的。

### Query that displays order details ###

SELECT DISTINCT
Tracking.ID,
Tracking.CreationDate,
Tracking.CurrentAssignedDriverID, 
Tracking.TotalCost, 
Tracking.CustomerID, 
Tracking.dFrom, 
Tracking.dTo,
(SELECT Company FROM Customers WHERE Customers.ID = CustomerID)
FROM Tracking

### Query that yields daily totals ###

SELECT 
CAST(convert(char(10), Tracking.CreationDate, 101) AS smalldatetime),
Tracking.TotalCost

FROM

Tracking

GROUP BY

CAST(convert(char(10), Tracking.CreationDate, 101) AS smalldatetime),
Tracking.TotalCost

【问题讨论】:

  • 由于两者都是从同一个表中选择的,我认为您不是在寻找联接。
  • 我认为您正在尝试在第二个 SELECT 语句中使用 SUM() 或其他一些聚合函数。这个对吗?问题不清楚。

标签: sql join


【解决方案1】:

您可以在一个查询中获取所有信息,如下所示:

SELECT  Tracking.ID,
        Tracking.CreationDate,
        Tracking.CurrentAssignedDriverID, 
        Tracking.TotalCost, 
        Tracking.CustomerID, 
        Tracking.dFrom, 
        Tracking.dTo,
        Customers.Company,
        SUM(Tracking.TotalCost) OVER(PARTITION BY CAST(convert(char(10), Tracking.CreationDate, 101) AS smalldatetime))
        AS TotalSales
  FROM  Tracking INNER JOIN Customers 
      ON    Customers.ID = Tracking.CustomerID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2018-08-12
    • 1970-01-01
    • 2012-04-17
    相关资源
    最近更新 更多