Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-每个客户需要在表中输入15行_Sql_Sql Server_Tsql_Insert - Fatal编程技术网

SQL-每个客户需要在表中输入15行

SQL-每个客户需要在表中输入15行,sql,sql-server,tsql,insert,Sql,Sql Server,Tsql,Insert,我需要在一个表中输入多行(每购买一件商品一行)。正在从另一个表中提取customerID(我没有手动输入)。。。我已经搜索了一个又一个SQL,但没有任何帮助:( 不起作用的示例: insert into table (district, customerID, shipper, item) select 'midwest', r.customerID, 'usps', 'tablesaw' union all select 'midwest, r.customerID, 'usps', 'ban

我需要在一个表中输入多行(每购买一件商品一行)。正在从另一个表中提取customerID(我没有手动输入)。。。我已经搜索了一个又一个SQL,但没有任何帮助:(

不起作用的示例:

insert into table (district, customerID, shipper, item)
select 'midwest', r.customerID, 'usps', 'tablesaw'
union all
select 'midwest, r.customerID, 'usps', 'bansaw'
union all
select 'midwest', r.customerID, 'usps', 'drill'

from reg r
表中的数据应如下所示:

midwest, a2234, USPS, tablesaw
midwest, a2234, USPS, bansaw
midwest, a2234, USPS, drill

这不是
UNION
的工作方式,您应该在
UNION
中为每个
选择
重复from reg r部分使用下一个代码:

insert into table (district, customerID, shipper, item)
select 'midwest', r.customerID, 'usps', 'tables' from reg r
union all
select 'midwest', r.customerID, 'usps', 'bansaw' from reg r
union all
select 'midwest', r.customerID, 'usps', 'drill' from reg r
insert into table (district, customerID, shipper, item)
select 'midwest', customerID, 'usps', 'tablesaw'
from reg where customerID = 'a2234'
union all
select 'midwest', r.customerID, 'usps', 'bansaw'
from reg where customerID = 'a2234'
union all
select 'midwest', r.customerID, 'usps', 'drill'
from reg where customerID = 'a2234'
1) 先运行Union而不执行insert,以确认要插入的数据


2)
选择“midwest
最后缺失。(第二次
联合
中选择

您可以使用
交叉连接
只读取一次
注册表


您的编辑澄清了我的问题,而我正在格式化它。从reg r添加到每个select语句。可能在customerid='a2234'的情况下,如果正在为其他customerid创建触发器或其他东西,那么也可以考虑创建触发器或其他东西。表中的数据将为同一个customer创建X行数…只有项目不同,所有其他字段都会重复。我不知道如何在一个SQL中插入多行-所有客户行,而不是为每个项目运行一个查询。声明收到错误没有帮助。告诉我们错误消息提供了一些信息。好的。。。对这就解决了它。。。虽然代码不整洁,但它是有效的,这是目前最重要的。我必须重复从哪里开始工作的所有步骤。是的,这是UNION的优点,在本用例中也是弱点
insert into table (district, customerID, shipper, item)
select 'midwest', r.customerID, 'usps', t.val
from reg r 
cross join (
    select 'tablesaw' val union all
    select 'bansaw' val union all
    select 'drill' val
) t