我需要使用其"父"表中的数据更新SQL Server 2005中的此表,如下所示:
拍卖
id (int)
udid (int)
assid (int)
Run Code Online (Sandbox Code Playgroud)
UD
id (int)
assid (int)
Run Code Online (Sandbox Code Playgroud)
sale.assid
包含要更新的正确值ud.assid
.
什么查询会这样做?我在考虑,join
但我不确定是否可能.
我有一个带account numbers
和的数据库card numbers
.我将这些文件与update
任何卡号匹配到帐号,以便我只使用帐号.
我创建了一个视图链接表和帐户/卡数据库以返回Table ID
相关的帐号,现在我需要更新ID与帐号匹配的记录.
这是Sales_Import
表,account number
需要更新字段:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
Run Code Online (Sandbox Code Playgroud)
这是RetrieveAccountNumber
表,我需要更新:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Run Code Online (Sandbox Code Playgroud)
我试过以下,但到目前为止没有运气:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Run Code Online (Sandbox Code Playgroud)
它将卡号更新为帐号,但帐号被替换为 NULL
我想更新表中的列,在其他表上进行连接,例如:
UPDATE table1 a
INNER JOIN table2 b ON a.commonfield = b.[common field]
SET a.CalculatedColumn= b.[Calculated Column]
WHERE
b.[common field]= a.commonfield
AND a.BatchNO = '110'
Run Code Online (Sandbox Code Playgroud)
但它抱怨:
消息170,级别15,状态1,行2
第2行:'a'附近的语法不正确.
这有什么不对?
我正在尝试更新列visited
以赋予它值1.我使用MySQL工作台,并且我在工作台内部在SQL编辑器中编写语句.我正在编写以下命令:
UPDATE tablename SET columnname=1;
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
您正在使用安全更新模式,并且您尝试更新没有使用KEY列的WHERE的表要禁用安全模式,请切换选项....
我跟着指示,我不加以制止,safe update
从选项Edit
菜单,然后Preferences
再SQL Editor
.仍然出现相同的错误,我无法更新此值.拜托,告诉我有什么问题?
我必须更新一个字段,其值由3个表的连接返回.
例:
select
im.itemid
,im.sku as iSku
,gm.SKU as GSKU
,mm.ManufacturerId as ManuId
,mm.ManufacturerName
,im.mf_item_number
,mm.ManufacturerID
from
item_master im, group_master gm, Manufacturer_Master mm
where
im.mf_item_number like 'STA%'
and im.sku=gm.sku
and gm.ManufacturerID = mm.ManufacturerID
and gm.manufacturerID=34
Run Code Online (Sandbox Code Playgroud)
我想更新mf_item_number
表的字段值item_master
与在上述条件中连接的其他值.
我怎样才能在MS SQL Server中执行此操作?
我需要检查(从同一个表)基于日期时间的两个事件之间是否存在关联.
一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间.
如果第一个事件在第二个事件之前完成,那么我想将它们链接起来.
到目前为止我所拥有的是:
SELECT name as name_A, date-time as end_DTS, id as id_A
FROM tableA WHERE criteria = 1
SELECT name as name_B, date-time as start_DTS, id as id_B
FROM tableA WHERE criteria = 2
Run Code Online (Sandbox Code Playgroud)
然后我加入他们:
SELECT name_A, name_B, id_A, id_B,
if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B
Run Code Online (Sandbox Code Playgroud)
那么,基于我的validation_check字段,我可以使用SELECT嵌套运行UPDATE查询吗?
我需要检索表中的所有行,其中2列组合都是不同的.因此,我希望所有在同一天没有任何其他销售的销售以相同的价格出售.基于日期和价格的唯一销售将更新为活动状态.
所以我在想:
UPDATE sales
SET status = 'ACTIVE'
WHERE id IN (SELECT DISTINCT (saleprice, saledate), id, count(id)
FROM sales
HAVING count = 1)
Run Code Online (Sandbox Code Playgroud)
但是我的大脑比那更远了.
我想更新SQL Server中的前100条记录.我有一个表T1
包含字段F1
和F2
.T1
有200条记录.我想更新F1
前100条记录中的字段.如何TOP 100
在SQL Server中进行更新?
我知道你可以一次插入多行,有没有办法在MySQL中一次更新多行(如在一个查询中)?
编辑:例如我有以下内容
Name id Col1 Col2
Row1 1 6 1
Row2 2 2 3
Row3 3 9 5
Row4 4 16 8
Run Code Online (Sandbox Code Playgroud)
我想将以下所有更新组合到一个查询中
UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;
Run Code Online (Sandbox Code Playgroud) 在其中插入带撇号的值的正确SQL语法是什么?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
Run Code Online (Sandbox Code Playgroud)
我一直收到错误,因为我认为O之后的撇号是值的结束标记.
sql-update ×10
sql ×7
sql-server ×5
t-sql ×4
mysql ×3
join ×2
select ×2
distinct ×1
duplicates ×1
postgresql ×1
sql-insert ×1