【发布时间】:2013-09-28 20:30:59
【问题描述】:
这里有一点问题,我出于某种原因找不到一个简单的方法来做到这一点,即使我知道必须这样做。我们有能力获得日期之间的总销售额,但我的老板希望能够获得一周中每天的总销售额,例如,7/1/13 和 8/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