我需要返回唯一的funeral_homes
,其中包含未完成的销售线索,并按最后销售线索时间戳进行排序。
这是我的SQL查询:
select distinct h.funeral_home_name, h.funeral_home_guid, h.address1, h.city, h.state, p.discount_available, t.date_created
from tblFuneralHomes h inner join tblFuneralTransactions t on h.funeral_home_guid = t.funeral_home_guid
inner join vwFuneralHomePricing p on h.funeral_home_guid = p.funeral_home_guid where completed=0 order by 'funeral_home_name' asc;
这是结果,但是我只需要最后添加铅的独特房屋
答案 0 :(得分:1)
这里出现的问题是您要加入与表tblFuneralHomes
具有1到许多关系的表,但是您希望每个fun仪馆只有一行。
我建议您不要使用distinct
,而是将所需的输出eral仪馆列进行分组,然后对联接表中所需的列应用某种汇总,以便仅返回单个计算所得的值。所有可能的合并值中的值。
例如,下面我们找到与每个fun仪馆相关的第一个交易日期(min
):
select h.funeral_home_name, h.funeral_home_guid, h.address1, h.city, h.state,
p.discount_available, min(t.date_created)
from tblFuneralHomes h
inner join tblFuneralTransactions t on h.funeral_home_guid = t.funeral_home_guid
inner join vwFuneralHomePricing p on h.funeral_home_guid = p.funeral_home_guid
where completed=0
group by h.funeral_home_name, h.funeral_home_guid, h.address1, h.city, h.state,
p.discount_available
order by h.funeral_home_name asc
请注意,根据tblFuneralHomes
和vwFuneralHomePricing
之间关联的基数,您可能还需要从分组中删除p.discount_available
并使用聚合函数对其进行介绍,类似于我对t.date_created