【问题标题】:Group By Date and SUM int - Date formatting and OrderGroup By Date and SUM int - 日期格式和顺序
【发布时间】:2015-08-30 01:06:10
【问题描述】:

我正在尝试获取一天所售数量的总和。我需要将结果按日期排序。下面的查询给出了我需要的确切结果,除了日期没有格式化为我需要的格式。

SELECT  CAST(Datetime AS DATE) AS 'date', SUM(quantity) as total_quantity
FROM Invoice_Itemized ii
INNER JOIN Invoice_Totals it ON it.Invoice_Number = ii.Invoice_Number
WHERE ii.ItemNum = '4011'
AND it.datetime > '05/15/2015'
GROUP BY CAST(Datetime AS DATE)

SELECT DATENAME(MM, datetime) + ' ' + CAST(DAY(datetime) AS VARCHAR(2)) AS [DD Month], SUM(quantity) as total_quantity
FROM Invoice_Itemized ii
INNER JOIN Invoice_Totals it ON it.Invoice_Number = ii.Invoice_Number
WHERE ii.ItemNum = '4011'
AND it.datetime > '05/15/2015'
GROUP BY DATENAME(MM, datetime) + ' ' + CAST(DAY(datetime) AS VARCHAR(2))

顶部查询的结果:

  1. 2015-05-15 91.43
  2. 2015-05-16 84.77

底部查询的结果:

  1. 6 月 1 日 128.34
  2. 6 月 10 日 85.06

顶部查询按我需要的顺序为我提供了我需要的信息。 底部查询为我提供了我需要的日期格式,但顺序错误。

【问题讨论】:

    标签: sql-server date casting group-by


    【解决方案1】:

    如果你真的需要应用不同的格式,你可以使用派生表:

    select 
        DATENAME(MM, [date]) + ' ' + CAST(DAY([date]) AS VARCHAR(2)) AS [DD Month], 
        total_quantity 
    from 
    (
        SELECT  CAST([Datetime] AS DATE) AS [date], SUM(quantity) as total_quantity
        FROM Invoice_Itemized ii
        INNER JOIN Invoice_Totals it ON it.Invoice_Number = ii.Invoice_Number
        WHERE ii.ItemNum = '4011'
        AND it.[datetime] > '05/15/2015'
        GROUP BY CAST(Datetime AS DATE)
    ) as X
    

    这样您可以将结果包装到派生表中,然后对其应用其余操作。

    我认为这也可以,但现在无法测试:

    SELECT  DATENAME(MM, CAST([datetime] AS DATE)) + ' ' 
    + CAST(DAY(CAST([datetime] AS DATE)) AS VARCHAR(2)) AS [DD Month], 
    SUM(quantity) as total_quantity
    FROM Invoice_Itemized ii
    INNER JOIN Invoice_Totals it ON it.Invoice_Number = ii.Invoice_Number
    WHERE ii.ItemNum = '4011'
    AND it.[datetime] > '05/15/2015'
    GROUP BY CAST([datetime] AS DATE)
    

    【讨论】:

    • 我测试了您的第二个查询。完全按照我的需要工作。谢谢!
    猜你喜欢
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2020-05-16
    • 2012-12-08
    相关资源
    最近更新 更多