最近做一个功能,具体是这样:订单审核,然后订单明细的每条记录的价格会自动更新到报价表的报价,下面只显示更新代码:
update XiaoShou_BaoJia set 
JiaGe= (SELECT      XiaoShou_DingDanMingXi.DanJia
FROM         XiaoShou_DingDanMingXi LEFT OUTER JOIN 
XiaoShou_DingDan ON XiaoShou_DingDanMingXi.DingDanID=XiaoShou_DingDan.DingDanID LEFT OUTER JOIN 
XiaoShou_BaoJia ON XiaoShou_BaoJia.WuPinID = XiaoShou_DingDanMingXi.WuPinID AND
XiaoShou_BaoJia.GuiGeID = XiaoShou_DingDanMingXi.GuiGeID AND
XiaoShou_DingDan.KeHuID = XiaoShou_BaoJia.KeHuID
 
WHERE     XiaoShou_DingDan.DingDanID = 4 AND XiaoShou_BaoJia.JiaGe IS NOT NULL)WHERE     XiaoShou_DingDan.DingDanID = 4 --不能通过执行最后那个WHERE语句因为XiaoShou_BaoJia 没有关联XiaoShou_DingDan,所以不能通过,如果没有这个条件语句,那么就会更新报价表里的所有报价,但我不懂怎么把这个语句写上去,应该有方法的,所以在这求助。

解决方案 »

  1.   

    试试:
    update XiaoShou_BaoJia set 
     JiaGe=XiaoShou_DingDanMingXi.DanJia
     FROM         XiaoShou_DingDanMingXi LEFT OUTER JOIN 
     XiaoShou_DingDan ON XiaoShou_DingDanMingXi.DingDanID=XiaoShou_DingDan.DingDanID LEFT OUTER JOIN 
     XiaoShou_BaoJia ON XiaoShou_BaoJia.WuPinID = XiaoShou_DingDanMingXi.WuPinID AND
     XiaoShou_BaoJia.GuiGeID = XiaoShou_DingDanMingXi.GuiGeID AND
     XiaoShou_DingDan.KeHuID = XiaoShou_BaoJia.KeHuID
      
     WHERE     XiaoShou_DingDan.DingDanID = 4 AND XiaoShou_BaoJia.JiaGe IS NOT NULL
      

  2.   

    update XiaoShou_BaoJia set JiaGe= XiaoShou_DingDanMingXi.DanJia
     FROM   XiaoShou_DingDanMingXi LEFT OUTER JOIN 
     XiaoShou_DingDan ON XiaoShou_DingDanMingXi.DingDanID=XiaoShou_DingDan.DingDanID LEFT OUTER JOIN 
     XiaoShou_BaoJia ON XiaoShou_BaoJia.WuPinID = XiaoShou_DingDanMingXi.WuPinID AND
     XiaoShou_BaoJia.GuiGeID = XiaoShou_DingDanMingXi.GuiGeID AND
     XiaoShou_DingDan.KeHuID = XiaoShou_BaoJia.KeHuID
      
     WHERE     XiaoShou_DingDan.DingDanID = 4 AND XiaoShou_BaoJia.JiaGe IS NOT NULL
     and     XiaoShou_DingDan.DingDanID = 4
      

  3.   

    update XiaoShou_BaoJia 
          set JiaGe= XiaoShou_DingDanMingXi.DanJia
    FROM   XiaoShou_DingDanMingXi 
          LEFT OUTER JOIN 
              XiaoShou_DingDan ON XiaoShou_DingDanMingXi.DingDanID=XiaoShou_DingDan.DingDanID
     LEFT OUTER JOIN 
     XiaoShou_BaoJia ON XiaoShou_BaoJia.WuPinID = XiaoShou_DingDanMingXi.WuPinID AND
     XiaoShou_BaoJia.GuiGeID = XiaoShou_DingDanMingXi.GuiGeID AND
     XiaoShou_DingDan.KeHuID = XiaoShou_BaoJia.KeHuID
      
     WHERE     XiaoShou_DingDan.DingDanID = 4 AND XiaoShou_BaoJia.JiaGe IS NOT NULL
     and     XiaoShou_DingDan.DingDanID = 4改下红字部分