Sql 从单个表中选择两个日期相同值的差值

Sql 从单个表中选择两个日期相同值的差值,sql,Sql,我有一个select查询选择不同的列,对于一个列,我必须从今天和上一个年末的表中获取一个值,并应取其差值。假设该表每天存储值,假设它是X select a b c d e e= ( SELECT VALUE FROM X WHERE DATE='TODAY') MINUS ( SELECT VALUE FROM X WHERE DATE='PREVIOUS YEAR END') i.e 31-dec-2013 有人能告诉我在单次选择查询

我有一个select查询选择不同的列,对于一个列,我必须从今天和上一个年末的表中获取一个值,并应取其差值。假设该表每天存储值,假设它是X

select a
       b
       c
       d
       e

e= ( SELECT VALUE FROM X WHERE DATE='TODAY') MINUS ( SELECT VALUE FROM X WHERE DATE='PREVIOUS YEAR END') i.e 31-dec-2013
有人能告诉我在单次选择查询中如何选择不同日期的相同值的逻辑吗

在重新阅读您的编辑后,看起来您想要使用一个子选择来获得e。在这种情况下,这是你去年用同样的逻辑为EOY解决的选择

( SELECT VALUE FROM X WHERE DATE=getdate()) - 
( SELECT VALUE FROM X WHERE DATE=DATEADD(yy, DATEDIFF(yy,0,getdate()), -1))
下面我的原始答案使用一个表,并将其自身连接起来

你可以这样做。只需在where子句中指定日期。联接将日期链接到去年的EOY日期

( SELECT VALUE FROM X WHERE DATE=getdate()) - 
( SELECT VALUE FROM X WHERE DATE=DATEADD(yy, DATEDIFF(yy,0,getdate()), -1))

你的桌子结构是什么?你期望的结果是什么?如果没有上下文,这将很难回答。这只是一个从不同表中选择的select查询,但在编写select a、b、c之后,我在选择了n列之后有一个计算列,我有e,其中e=余额为今天的日期-减去年底的日期。我想你正在寻找一个自联接。我在我的select查询中已经有6个联接,以及各种情况,如case when x然后y等等。。。选择所有列后,我必须基于一个表获得一个值,我有连接条件,但我只能为日期指定一个where条件。我想两个取值之间的关系简单考虑一下。我有一个select查询选择不同的列,对于一个列,我必须从今天和上一个年末的表中获取一个值。假设此表每天都存储值,假设它是X。现在从X中选择值,其中日期为“今天”,减去从X中选择值,其中日期为“上一个年末”,即2013年12月31日,Hanks Jchao,但值必须来自同一个表,而不是不同的表table@user3826067请看我的最新答案。两种解决方案都只使用一个表。第二个解决方案本身刚刚加入了一个表。很抱歉,它不允许像select a、b、c这样写入,d从x中选择值,其中日期从x中选择值,其中yearenddate作为余额这是我选择的列之一Oracle将不接受嵌套查询这样地