请教一个关于SQL问题,谢谢

风云再起9310 2016-07-26 04:24:31
如图所示:
--问题:OrderCode是Order表中的字段,CustomEnCode是Stock中的字段,现在我需要把CustomEnCode
--保存到Order表中的CustomEnCode字段,请问需要怎么更改?万分感激,谢谢。
SELECT o.OrderCode,st.CustomEnCode FROM dbo.[Order] o LEFT JOIN dbo.OrderDetail od
ON o.Id=od.OrderId LEFT JOIN dbo.Works wo
ON od.WorksId=wo.Id LEFT JOIN dbo.Book bo
ON wo.RelateId=bo.Id LEFT JOIN dbo.Stock st
ON bo.CustomOrderId=st.CustomOrderId
WHERE bo.CustomOrderId>0 AND o.CustomEnCode IS NULL
GROUP BY o.OrderCode,st.CustomEnCode
ORDER BY OrderCode DESC
...全文
107 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
道素 2016-07-27
  • 打赏
  • 举报
回复
按照你写的SQL,难道一个Order会关联出多个code吗?那更新为哪个呢? 我下面的例子就更新为第一个

UPDATE o SET o.CustomEnCode=s.CustomEnCode  
FROM dbo.[Order] o 
CROSS JOIN ( 
	SELECT TOP 1 st.CustomEnCode FROM  dbo.OrderDetail od  
    LEFT JOIN dbo.Works wo ON od.WorksId=wo.Id 
    LEFT JOIN dbo.Book bo ON wo.RelateId=bo.Id 
    LEFT JOIN dbo.Stock st ON bo.CustomOrderId=st.CustomOrderId
    WHERE o.Id=od.OrderId AND bo.CustomOrderId>0  AND o.CustomEnCode IS NULL
) s
卖水果的net 2016-07-26
  • 打赏
  • 举报
回复
--大概语法是这样,你套用一下
update a 
set a.code = b.code 
from a , b 
where .....

594

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧