0

ここで少し問題が発生しました。何らかの理由でこれを行う簡単な方法が見つかりません。日付間の総売上を取得する機能がありますが、上司は曜日ごとの総売上を取得できるようにしたいと考えています。たとえば、月曜日から までのすべての売上の合計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
4

1 に答える 1

0

月曜日の結果を /just/ 取得したい場合は、where 句に次を追加するだけです。

and datepart(dw,tblItem.dateOrder) = 1

クエリに各日の列を含める場合は、各日の日付部分を使用して選択部分で case ステートメントを使用する必要があります。

これは、あなたが米国にいることを前提としています。週の最初の曜日は国によって異なります

DatePart 情報 - http://msdn.microsoft.com/en-us/library/ms174420.aspx

于 2013-09-23T20:09:21.133 に答える