私は、毎日、毎週、毎月、および数えられた注文の数と、それらの期間の間の注文の合計金額を出力しようとしています。現時点で私は次のことを思いついた。その長いですが、同じ声明のちょうどコピー&ペーストの仕事はちょうど年、月、週と日までにグループ化するためにわずかに修正されました。それに応じて出力することができる年、月、週、毎日数および取引合計を提供する理想的な出力である1行あたりの日付範囲のグループ化
Year Month Week Day Count Amount
2011 0 0 0 3 285.00
2011 January 0 0 3 285.00
2011 January 4 0 2 190.00
2011 January 4 26 1 95.00
を出力
SELECT YEAR(s.LastUpdated) AS 'Year', 0 AS 'Month', 0 AS 'Week', 0 AS 'Day', count(rowId) AS 'Transactions', ROUND(SUM(Amount),2) AS 'Partner Cut'
FROM gfw_orders AS o
JOIN gfw_sage_orders AS s
ON o.sageRef = s.VendorTxCode
WHERE YEAR(s.LastUpdated) = 2011
GROUP BY
YEAR(s.LastUpdated)
UNION
SELECT YEAR(s.LastUpdated) AS 'Year', MONTHNAME(s.LastUpdated) AS 'Month', 0 AS 'Week', 0 AS 'Day', count(rowId) AS 'Transactions', ROUND(SUM(Amount),2) AS 'Partner Cut'
FROM gfw_orders AS o
JOIN gfw_sage_orders AS s
ON o.sageRef = s.VendorTxCode
WHERE MONTH(s.LastUpdated) = 1
GROUP BY
YEAR(s.LastUpdated), MONTH(s.LastUpdated)
UNION
SELECT YEAR(s.LastUpdated) AS 'Year', MONTHNAME(s.LastUpdated) AS 'Month', WEEKOFYEAR(s.LastUpdated) AS 'Week', 0 AS 'Day', count(rowId) AS 'Transactions', ROUND(SUM(Amount),2) AS 'Partner Cut'
FROM gfw_orders AS o
JOIN gfw_sage_orders AS s
ON o.sageRef = s.VendorTxCode
WHERE WEEK(s.lastUpdated) = 4
GROUP BY
YEAR(s.LastUpdated), MONTH(s.LastUpdated), WEEK(s.LastUpdated)
UNION
SELECT YEAR(s.LastUpdated) AS 'Year', MONTHNAME(s.LastUpdated) AS 'Month', WEEKOFYEAR(s.LastUpdated) AS 'Week', DAY(s.lastUpdated), count(rowId) AS 'Transactions', ROUND(SUM(Amount),2) AS 'Partner Cut'
FROM gfw_orders AS o
JOIN gfw_sage_orders AS s
ON o.sageRef = s.VendorTxCode
WHERE DAY(s.LastUpdated) = 26
GROUP BY
YEAR(s.LastUpdated), MONTH(s.LastUpdated), WEEK(s.LastUpdated), DAY(s.LastUpdated)
。しかし、それは1つのタイプの注文に対するものです。 ordersテーブルには、オンラインと端末の2種類の注文があり、理想的にはデータベースを複数回クエリする代わりに両方のタイプを同じクエリで出力したいと思っています。
私に問題がある2つの質問があります。まず、同じ結果を達成するための簡単な方法がありますか?いくつかの注文が異なるため、2番目の質問につながるので、私はそれを複雑にしたくないです。私は単に私が既に持っているコードをコピーしてUNIONに加えれば、オンライン注文と端末注文の両方を表示することができます。 WHERE Terminal = 1 'のため、結果は同じです。同じクエリで2組の出力を出力する方法はありますか?
私はおそらく、私が目指していることを複雑にしていますが、事前にアドバイスや指摘をいただきありがとうございます。