Mysql n 01/04/17来自票务表)-800美元(这两张票的总销售额是指来自行项目表:{line\u item.count*line\u item.quantity}这有意义吗?编辑我的答案以包含总销售额。结果将返回一个哈希数组。您可以在视图中包含该数组以显示
Mysql n 01/04/17来自票务表)-800美元(这两张票的总销售额是指来自行项目表:{line\u item.count*line\u item.quantity}这有意义吗?编辑我的答案以包含总销售额。结果将返回一个哈希数组。您可以在视图中包含该数组以显示,mysql,ruby-on-rails,postgresql,ruby-on-rails-4,Mysql,Ruby On Rails,Postgresql,Ruby On Rails 4,n 01/04/17来自票务表)-800美元(这两张票的总销售额是指来自行项目表:{line\u item.count*line\u item.quantity}这有意义吗?编辑我的答案以包含总销售额。结果将返回一个哈希数组。您可以在视图中包含该数组以显示表格数据。如果您能告诉用户更多的选择,那就太好了。我假设用户有像上周=>天数=7,上月=>天数=30,过去2个月=>天数=60,去年=>天数=365等等。此外,您的代码会给我一些错误,如:语法错误,意外的“:”,应为关键字“结束日期:Date.
n 01/04/17来自票务表)-800美元(这两张票的总销售额是指来自行项目表:{line\u item.count*line\u item.quantity}这有意义吗?编辑我的答案以包含总销售额。结果将返回一个哈希数组。您可以在视图中包含该数组以显示表格数据。如果您能告诉用户更多的选择,那就太好了。我假设用户有像
上周=>天数=7
,上月=>天数=30
,过去2个月=>天数=60
,去年=>天数=365
等等。此外,您的代码会给我一些错误,如:语法错误,意外的“:”,应为关键字“结束日期:Date.today-day”\u from\u now.days,^(irb):54:语法错误,意外“,”,应为关键字\u end day:Date.today-day\u from\u now.days,
请原谅语法错误。我已更新了我的答案。这应该会提供一些有意义的内容。由于循环返回哈希(键值对),我在循环中添加了大括号每天。我只返回天数和项目计数。我不确定您屏幕截图中的第三列。第二列是该特定日期的门票计数。从我的屏幕截图中可以看出:01/04/17-2(2017年04月01日的门票来自票务表)-$800(这两张门票的总销售额来自行项目表:{line_item.count*line_item.quantity}
这有意义吗?编辑我的答案以包含总销售额。结果将返回一个哈希数组。您可以将其包含在视图中以显示表格数据。
----------------------
id | date | count
----------------------
1 | 01/04/17 | 0 // 0 because this dates does not have any tickets.
2 | 02/04/17 | 0 // 0 because this dates does not have any tickets.
3 | 03/04/17 | 0 // 0 because this dates does not have any tickets.
4 | 04/04/17 | 0 // 0 because this dates does not have any tickets.
5 | 05/04/17 | 0 // 0 because this dates does not have any tickets.
6 | 06/04/17 | 0 // 0 because this dates does not have any tickets.
7 | 07/04/17 | 0 // 0 because this dates does not have any tickets.
8 | 08/04/17 | 0 // 0 because this dates does not have any tickets.
Ticket.includes(:line_items).where('tickets.created_at > ? AND
tickets.created_at < ?', Date.today.last_month.beginning_of_month,
Date.today.beginning_of_month).where.not(line_items: {id: nil}).count
SELECT COUNT(DISTINCT "tickets"."id") FROM "tickets" LEFT OUTER JOIN
"line_items" ON "line_items"."ticket_id" = "tickets"."id" WHERE
(tickets.created_at > '2017-04-01' AND tickets.created_at < '2017-05-01') AND
("line_items"."id" IS NOT NULL)
data = Ticket.includes(:line_items).where('tickets.created_at > ? AND tickets.created_at < ?', Time.now.beginning_of_day - (no_of_days).days , Time.now.beginning_of_day).where.not(line_items: {id: nil}) #retrieves all data in a single query
(0..no_of_days).map do |day_from_now|
todays_data = data.select{|item| item.created_at < (Time.now.beginning_of_day - (day_from_now).days) && item.created_at > (Time.now.beginning_of_day - (day_from_now - 1).days)}
return { "day": (Date.today - day_from_now.days).strftime("%A %d-%m"),
"ticket_count": todays_data.size,
"total_sales": todays_data.inject(0){|sum, item| sum + item.line_item.quantity * item.line_item.rate }
end
DECLARE @MinDate DATE = '20170401',
@MaxDate DATE = '20170430';
SELECT t.Id, d.[Date], COALESCE(t.[Count],0) AS [Count]
FROM (
SELECT TOP (DATEDIFF(DAY, @MinDate, @MaxDate) + 1)
Date = DATEADD(DAY, ROW_NUMBER() OVER(ORDER BY a.object_id) - 1, @MinDate)
FROM sys.all_objects a
CROSS JOIN sys.all_objects b
) d
LEFT JOIN yourTbl AS t ON d.Date = t.Date
SELECT dat::date, count(DISTINCT tic."id")
FROM generate_series('2017-04-01'::date, '2017-04-30'::date, interval '1 day') AS dat
LEFT JOIN (SELECT "tickets"."id", "tickets"."created_at"
FROM "tickets"
JOIN "line_items"
ON "line_items"."ticket_id" = "tickets"."id") tic
ON tic."created_at" = dat::date
GROUP BY dat
ORDER BY dat
SELECT dat::date, count(DISTINCT "tickets"."id")
FROM generate_series('2017-04-01'::date, '2017-04-30'::date, interval '1 day') AS dat
LEFT JOIN "tickets" ON "tickets"."created_at" = dat::date
AND EXISTS(SELECT 1 FROM "line_items"
WHERE "line_items"."ticket_id" = "tickets"."id" LIMIT 1)
GROUP BY dat
ORDER BY dat