表自我加入年度比较

时间:2018-02-13 18:24:07

标签: sql postgresql sqlite

我无法自行加入数据表,以便在一行中提供逐年结果。

我的数据目前在表销售中存储如下。我可以使用Postgres或sqlite3。

我们(约会)|商店|类别| planu | planrev | merchu | merchrev

期望的结果是: https://www.amazon.com

我需要能够在最后4列中显示LY的值为1/7/17。

然后,我将结果与所有其他合作伙伴的结果相结合,复制其他表的相同查询。

可以假设所有当前年度数据将是我们> 1/1/18,以匹配上一年结果的364天前的日期。

通过阅读其他帖子,我想我可能需要制作一个CTE查询,我只是不知道从哪里开始。

我希望这很清楚。

非常感谢任何帮助解决这个问题。

1 个答案:

答案 0 :(得分:2)

看起来您想要加入相同的商店和类别以及一年中的同月和日。在PostgreSQL中看起来如下:

select 
  'PartnerA' as channel,
  cy.we as date,
  cy.month,
  cy.year,
  cy.store,
  'PartnerA ' || cy.store as ch_store,
  cy.category,
  cy.planu,
  cy.planrev,
  cy.merchu,
  cy.merchrev,
  ly.planu as planu_ly,
  ly.planrev as planrev_ly,
  ly.merchu as merchu_ly,
  ly.merchrev as merchrev_ly
from sales cy
join sales ly on cy.store = ly.store and cy.category = ly.category
  and cy.we - interval '1 year' = ly.we
;