繁体   English   中英

SQL查询联接两个表没有关系

[英]SQL query to JOIN two tables with no relationship

我无法使用此表值获取每个项目的每月平均成本的记录。 在此处输入图片说明

在此处输入图片说明

我需要这样的结果:

在此处输入图片说明

我想要得到的是从一月到十二月的整个月,即使该项目在该月没有交易。

这可能吗 ?

我不在电脑旁,但是我会在概念上做以下事情:

  1. 生成一个表/临时表,该表/临时表使用交易日期字段中的最小日期和最大日期。 该表至少包含三列:1.月名称2.该月的开始日期(如果是多年,则为年份)3.结束日期的方式与开始日期相同。 步骤1使用的URL: https : //www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/

  2. 从步骤1的表中加入,交易日期在开始日期和结束日期之间

  3. 最后,将其分组/平均。

希望这可以帮助。 明天,如果您仍然需要帮助,我将发布查询。

到这里开始(假设使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM