我是一个SQL新手,我对一个我觉得很复杂的查询有问题。
因此,我尝试创建一个显示17个月日期间隔的查询。在该间隔内,它必须显示当前月份和当前日期。然后,它必须将该日期与当前日期之前的月份进行比较。
然后,我将使用Highcharts图表中的数据。
这是当前查询和表的外观。
SELECT
MONTH(s_order_main.added_date) AS iMonth,
s_order_main.channel AS strChannel,
COUNT(DISTINCT s_order_styles.s_order_style_id) AS iOrderCount,
SUM(DISTINCT s_order_styles.sales_price) AS fTurnover
FROM
s_order_main
INNER JOIN
s_order_styles ON
s_order_styles.s_order_main_id = s_order_main.id
WHERE
s_order_main.channel
&& s_order_main.order_type = 'pre'
&& YEAR(s_order_main.added_date) = YEAR(CURDATE() - INTERVAL 17 MONTH)
GROUP BY
MONTH(s_order_main.added_date)
;
| 每月|字符串通道|iOrder计数|f营业额|
| - -|- -|- -|- -|
| 一个|正常的|小行星2234|小行星33048.66|
| 2个|正常的|小行星6638|小行星66711.96|
| 三个|正常的|小行星4266|小行星30742.70|
| 四个|正常的|一百七十一|七百六十六点一零|
| 五个|正常的|九十|九百二十六点五五|
| 六个|正常的|小行星1254|小行星12334.04|
| 七个|正常的|九二一|小行星2990.35|
| 八个|正常的|小行星946|小行星46407.63|
| 九个|正常的|小行星5837|小行星31623.17|
| 10个|正常的|七十|三百零五点零三|
| 十一|正常的|三百二十三|二千七百二十六元九十九分|
| 十二|正常的|三百七十|六千六百九十三点九四|
这就是我希望我的表看起来像-不确定如果本月是应该看起来像虽然。
| 每月|字符串通道|iOrder计数|f营业额|当前月份|字符串当前日期|
| - -|- -|- -|- -|- -|- -|
| 十二|正常的|小行星2234|小行星33048.66|第0页|2021年12月22日13时54分09秒|
| 一个|正常的|小行星2234|小行星33048.66|第0页|2022年1月22日13时54分09秒|
| 2个|正常的|小行星6638|小行星66711.96|第0页|2022年2月22日13时54分09秒|
| 三个|正常的|小行星4266|小行星30742.70|第0页|2022年3月22日13时54分09秒|
| 四个|正常的|一百七十一|七百六十六点一零|第0页|2022年4月22日13时54分09秒|
| 五个|正常的|九十|九百二十六点五五|第0页|2022年5月22日13时54分09秒|
| 六个|正常的|小行星1254|小行星12334.04|第0页|2022年6月22日13时54分09秒|
| 七个|正常的|九二一|小行星2990.35|第0页|2022年7月22日13时54分09秒|
| 八个|正常的|小行星946|小行星46407.63|第0页|2022年8月22日13时54分09秒|
| 九个|正常的|小行星5837|小行星31623.17|第0页|2022年9月22日13时54分09秒|
| 10个|正常的|七十|三百零五点零三|第0页|2022年10月22日13时54分09秒|
| 十一|正常的|三百二十三|二千七百二十六元九十九分|一个|2022年10月22日13时54分09秒|
| 十二|正常的|三百七十|六千六百九十三点九四|第0页|2022年12月22日13时54分09秒|
| 一个|b2b网络|三百七十|六千六百九十三点九四|第0页|2023年1月22日13时54分09秒|
| 2个|正常的|三百七十|六千六百九十三点九四|第0页|2023年2月22日13时54分09秒|
| 三个|b2b网络|三百七十|六千六百九十三点九四|第0页|2023年3月22日13时54分09秒|
| 四个|正常的|三百七十|六千六百九十三点九四|第0页|2023年4月22日13时54分09秒|
希望这是有意义的,但如果我需要详细说明一些事情,然后请问:)
2条答案
按热度按时间v8wbuo2f1#
因此,如果当前日期/时间为2022-10-31 13:00:00,则2022年2月分组的终止日期/时间应该是什么?显然,它不能是2022-02-31 13:00:00。它应该是2022-02-28 23:59:59吗?
下面是我对你的查询的尝试。如果你有一个可靠的(和/或专用的)序列表,那么你可以摆脱
seq
派生表。ercv8c1e2#
我猜你想在你的
WHERE
中加入一些日期运算Demo