如何在SQL中填充表

时间:2017-05-28 21:52:50

标签: sql

在我的数据库的表1中有一个名为Product Title的列,其中一些产品具有相同的名称。但是,它们的价格不同。

还有一个名为“产品版本”的列。这可以用销售价格,主零售价格,黑色星期五价格来填补。

对于并非“主零售价”的所有产品,我需要将主零售价产品编号填入主产品编号栏。

例如:如果有三个名为Banana的物品,我需要销售版本的物品在主要产品编号栏中有主要产品编号。

如果产品版本为“主零售价”,则该行的主产品编号应为NULL。

到目前为止,我已将代码中的所有产品编号插入表2中。如果有人可以提供帮助,我将非常感谢。

Select [Table 1].[Product Title], [Table 1].[Product No]

FROM [Table 1] 

INNER JOIN [Table 2] ON [Table1].[Product Title]=[Table 2].[Product Title]

UPDATE [Table 1] 

SET [Table 1].[Main Product Number]=[Table1.[Product No] 

WHERE [Table 1].[Product Verison]='Master Retail Price';

1 个答案:

答案 0 :(得分:0)

好的,让我们再现你所说的话

对于这个例子,我使用了Oracle数据库。

我们有表t1,比方说4列(你提到的那些)

create table t1( 
main_product_number int, 
product_number int, 
product_title varchar2(20), 
product_version varchar2(40) );

使用一些虚构值填充表格

insert into t1 values (NULL, 1,'Banana','Master Retail Price');
insert into t1 values (5, 2, 'Banana','Sale Price');
insert into t1 values (7, 3, 'Banana','Black Friday Price');

进行简单的选择以查看数据:

select * from t1;

MAIN_PRODUCT_NUMBER PRODUCT_NUMBER  PRODUCT_TITLE   PRODUCT_VERSION
 -                  1               Banana          Master Retail Price
 5                  2               Banana          Sale Price
 7                  3               Banana          Black Friday Price
  

对于所有不是“主零售价”的产品,我需要   将主零售价格产品编号填入主页   产品编号栏。

嗯......让我们在一个漂亮的自我加入中使用相关的子查询来完成这项任务:

update t1 a
   set a.main_product_number=( select product_number
                                 from t1 b
                                where a.product_title = b.product_title
                                  and b.product_version='Master Retail Price'
                                   and b.main_product_number is null
                              )
 where a.product_version <> 'Master Retail Price';

现在所有非主零售价的产品,其主要产品编号将填入主零售价产品编号,如下图所示。

MAIN_PRODUCT_NUMBER PRODUCT_NUMBER  PRODUCT_TITLE   PRODUCT_VERSION
-                   1               Banana          Master Retail Price
1                   2               Banana          Sale Price
1                   3               Banana          Black Friday Price

希望它对你有所帮助。