小编Eri*_*Ely的帖子

单个查询中的多个SQL Update语句

我处于这样一种情况,即我必须在我的数据库中更新大约12,000个项目.每行都需要镜像我之前创建的excel文件.我创建了创建每行SQL语句的文件,但我不确定是否可以在单个查询中运行每一行.

这是我想要做的一个例子.

UPDATE [STORESQL].[dbo].[RPT_ITM_D] SET F1301='1.29' WHERE F01='0000000000001'
UPDATE [STORESQL].[dbo].[RPT_ITM_D] SET F1301='1.39' WHERE F01='0000000000002'
Run Code Online (Sandbox Code Playgroud)

这会起作用,还是有更好的选择来实现我想要实现的目标?

每个项目都有一个唯一值,要更改的列也将具有唯一值.我不知道如何用循环或我到目前为止找到的任何其他方法来完成这项工作.我意识到这可能需要很长时间才能完成,但时间不是问题.

先感谢您

sql sql-update

11
推荐指数
2
解决办法
7万
查看次数

SQL Sub-Select,仅显示非零项

我一直在提问,以获得我公司要求的SQL查询的最终结果.我终于得到了最初要求的最终结果,但他们想要更多.

我的公司希望我使查询仅显示带有移动的值(已售出,已购买或已调整).我不知道如何使这项工作,或在哪里看.

SET ARITHABORT OFF
SET ANSI_WARNINGS OFF
SELECT
[UPC]=t1.F01,
COALESCE((SELECT SUM (COALESCE (X.F64, 0)) FROM [STORESQL].[dbo].[RPT_ITM_D] X WHERE (X.F254>='2011-10-1' and X.F254<='2011-11-11') and (X.F1034 = 3) AND X.F01 = T1.F01 Group by X.F01,X.F1034),0) AS [Total QTY Sold],
COALESCE((SELECT SUM (COALESCE (X.F65, 0)) FROM [STORESQL].[dbo].[RPT_ITM_D] X WHERE (X.F254>='2011-10-1' and X.F254<='2011-11-11') and (X.F1034 = 3) AND X.F01 = T1.F01 Group by X.F01,X.F1034),0) AS [Total Amount Sold],
COALESCE((SELECT SUM (COALESCE (X.F1301, 0)) FROM [STORESQL].[dbo].[RPT_ITM_D] X WHERE (X.F254>='2011-10-1' and X.F254<='2011-11-11') and (X.F1034 = 3) …
Run Code Online (Sandbox Code Playgroud)

sql sql-subselect

2
推荐指数
1
解决办法
5787
查看次数

SQL完全加入Where

我试图在SQL中连接两个表,一个包含项目列表,另一个包含它们的销售日期.我得到了连接部分,但是我需要从REPORT表中获取信息,但是需要VENDORS表中的所有项目.我需要将未售出的商品显示为NULL,或者最好是0.这是我目前使用的代码,它只显示在给定日期销售的商品.

SELECT t2.[DATE]
      ,t1.[VENDOR]
      ,t1.[UPC]
      ,t2.[QTY]
      ,t2.[AMOUNT]
FROM [STORESQL].[dbo].[VENDORS] t1
LEFT OUTER JOIN [STORESQL].[dbo].[REPORT] t2 ON t1.UPC=t2.UPC
WHERE VENDOR='119828' AND DATE='2011-11-8'
Run Code Online (Sandbox Code Playgroud)

表的例子是

商贩:

VENDOR   UPC
119828   1
119828   2
119828   3
Run Code Online (Sandbox Code Playgroud)

报告:

DATE       UPC    QTY    AMOUNT
2011-11-8  1      1      9.99
2011-11-8  3      2      18.98
Run Code Online (Sandbox Code Playgroud)

导致当前代码

DATE       VENDOR    UPC    QTY    AMOUNT
2011-11-8  119828    1      1      9.99
2011-11-8  119828    3      2      18.98
Run Code Online (Sandbox Code Playgroud)

我需要它来展示

DATE       VENDOR    UPC    QTY    AMOUNT
2011-11-8  119828    1      1      9.99
2011-11-8  119828    2      0      0.00
2011-11-8  119828    3      2 …
Run Code Online (Sandbox Code Playgroud)

sql join left-join

1
推荐指数
1
解决办法
3867
查看次数

标签 统计

sql ×3

join ×1

left-join ×1

sql-subselect ×1

sql-update ×1