如果对于表1中的相同列,表2中存在值,则添加两个值。从表2中获取先前的值,然后添加

时间:2015-08-06 10:36:29

标签: sql sql-server-2008

我有两个表,表1和表格如下:

表1

ID     Product_Id         Date                        Volume
1        260       2015-07-21 09:50:37.000             40000
1        270       2015-07-23 09:50:37.000             60000

表2

ID          Product_Id          Date                       Volume
2            260              2015-07-21 09:50:37.000      10000
2            270              2015-07-22 09:50:37.000      20000 

我想检查表1中是否存在表1中日期的Product_Id,如果它存在,那么我想要添加这两个卷。如果不存在,那么我将从表2中取出先前的值,然后添加。

如何实现这一目标?我没有一个想法这样做。

1 个答案:

答案 0 :(得分:0)

SQL Fiddle

架构详细信息

sudo apt-get install kvm qemu 

选择查询

create table t1
(
  id integer,
  product_id integer,
  date datetime,
  volume integer
);

create table t2
(
  id integer,
  product_id integer,
  date datetime,
  volume integer
);

insert into t1 values(1,260, '2015-07-21 09:50:37.000', 40000);
insert into t1 values(2,270, '2015-07-23 09:50:37.000', 60000);

insert into t2 values(2,260, '2015-07-21 09:50:37.000', 10000);
insert into t2 values(2,270, '2015-07-22 09:50:37.000', 20000);

<强>输出

select product_id, date, 
volume+coalesce((select volume from t2 where t1.product_id=t2.product_id and t1.date=t2.date),0)
from t1