【问题标题】:Total sales for specific day of week in specific date range SQL Server特定日期范围内特定星期几的总销售额 SQL Server
【发布时间】:2013-09-28 20:30:59
【问题描述】:

这里有一点问题,我出于某种原因找不到一个简单的方法来做到这一点,即使我知道必须这样做。我们有能力获得日期之间的总销售额,但我的老板希望能够获得一周中每天的总销售额,例如,7/1/138/1/13 之间的星期一的总销售额。

这是对这些日期之间的销售额求和的查询。

SET NOCOUNT ON
SET CONCAT_NULL_YIELDS_NULL OFF

SELECT tblItem.dateOrder,
    tblMerchPack.strMerchPackCategory + tblPayTypeID.strPayTypeName AS strMerchPackCategory,
    tblMerchPack.strMerchPackID,
    tblMerchPack.strMerchPackName + tblPayTypeID.strPayTypeName AS strMerchPackDescription,
    tblMerchItem.strMerchItemID,
    tblMerchItem.strMerchItemName + tblPayTypeID.strPayTypeName AS strMerchItemDescription,
    tblItem.lngQuantity,
    tblItem.curPrice,
    tblItem.curPriceDiscount,
    tblItem.curTaxA,
    tblItem.curTaxB,
    tblPay.curTender - tblPay.curChange AS curPayment,
    tblStoredValue.curCash AS curStoredPayment,
    CASE 
        WHEN tblItem.lngMerchItemID IS NULL
            THEN - 1
        WHEN tblItem.lngMerchItemID > 0
            THEN 0
        WHEN tblPayTypeID.lngPayTypeID IS NULL
            THEN 1000
        WHEN tblPayTypeID.lngPayTypeID > 0
            THEN tblPayTypeID.lngPayTypeID
        ELSE - 1
        END AS 'lngPaymentSort'
FROM tblItem
LEFT JOIN tblPay ON tblItem.lngItemID = tblPay.lngItemID
LEFT JOIN tblStoredValue ON tblItem.lngItemID = tblStoredValue.lngItemID
LEFT JOIN tblPayTypeID ON tblPay.lngPayTypeID = tblPayTypeID.lngPayTypeID
LEFT JOIN tblMerchItem ON tblItem.lngMerchItemID = tblMerchItem.lngMerchItemID
LEFT JOIN tblMerchPack ON tblItem.lngMerchPackID = tblMerchPack.lngMerchPackID
WHERE (
        tblItem.dateOrder BETWEEN '7/1/2013 5:00:00 AM'
            AND '8/1/2013 4:59:59 AM'
        )
ORDER BY lngPaymentSort,
    strMerchPackCategory,
    strMerchItemDescription

【问题讨论】:

    标签: sql sql-server weekday


    【解决方案1】:

    如果您想/just/ 获取星期一的结果,那么只需将以下内容添加到您的 where 子句中:

    and datepart(dw,tblItem.dateOrder) = 1
    

    如果您希望查询包含每一天的列,则必须在选择部分中使用 case 语句,并使用每一天的日期部分。

    这是假设您在美国。一周的第一天因国家/地区而异

    日期部分信息 - http://msdn.microsoft.com/en-us/library/ms174420.aspx

    【讨论】:

    • 这是我正在寻找的答案。感谢您的帮助!
    猜你喜欢
    • 2019-07-17
    • 2019-08-27
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多