[英]SQL query to JOIN two tables with no relationship
我不在电脑旁,但是我会在概念上做以下事情:
生成一个表/临时表,该表/临时表使用交易日期字段中的最小日期和最大日期。 该表至少包含三列:1.月名称2.该月的开始日期(如果是多年,则为年份)3.结束日期的方式与开始日期相同。 步骤1使用的URL: https : //www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/
从步骤1的表中加入,交易日期在开始日期和结束日期之间
最后,将其分组/平均。
希望这可以帮助。 明天,如果您仍然需要帮助,我将发布查询。
到这里开始(假设使用T-SQL):
select b.ItemName, a.MonthName, round(coalesce(avg(c.Cost), 0)) as avg_cost
from table_1 a
join (select ItemName from table_2 group by ItemName) b
on 1 = 1
left join table_2 c
on month(c.TransactionDate) = a.MonthID
and b.ItemName = c.ItemName
group by b.ItemName, a.MonthName
order by b.ItemName, a.MonthID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.