• SQL校验优化


     

    我的思路只能查当前的:

    ----校验此行订单是否已导入,若已导入则提示订单号并Return

    --        IF EXISTS (SELECT 1 FROM DOC_Order_Header b LEFT JOIN @tblData a

    --                         ON

    --                         a.ConsigneeID = b.ConsigneeID

    --                         AND a.ConsigneeID = b.ConsigneeID

    --                               AND a.SOReference1 = b.SOReference1

    --                               AND a.H_EDI_01 = b.H_EDI_01

    --                               AND a.OrderTime = b.OrderTime

    --                               AND a.H_EDI_02 = b.H_EDI_02

    --                               AND a.HeaderNotes = b.Notes

    --                               WHERE b.CustomerID = 'KKKL'

    --                         )

    --        BEGIN

    --        SET @Msg = @Msg + '订单号:' +  @sSOReference1 + '已存在,请检查数据!'

    --        RETURN -1                

    --        END

    优化思路:

     

    --校验客户是否存在,返回所有不存在的客户编号:        

      SET @sConsigneeID = NULL

      SELECT @sConsigneeID = ISNULL(@sConsigneeID + ',', '') + ConsigneeID

      FROM (

        SELECT DISTINCT a.ConsigneeID AS ConsigneeID

        FROM @tblAllData a

          LEFT JOIN BAS_Customer co ON a.ConsigneeID = co.CustomerID AND co.Customer_Type = 'CO'

        WHERE

          co.CustomerID IS NULL ) a

      IF @sConsigneeID <> ''

        SET @Msg = @Msg + '客户档案不存在:' + @sConsigneeID

       

      --校验订单是否存在,返回所有已存在的订单号

        SET @sSOReference1 = NULL

      SELECT @sSOReference1 = ISNULL(@sSOReference1 + ',', '') + SOReference1

      FROM (

        SELECT DISTINCT a.SOReference1 AS SOReference1

        FROM @tblAllData a

          LEFT JOIN DOC_Order_Header oh ON a.SOReference1 = oh.SOReference1 AND oh.CustomerID = 'KKKL'

        WHERE

          oh.SOReference1 IS NOT NULL ) a

      IF @sSOReference1 <> ''

        SET @Msg = @Msg + '订单已存在:' + @sSOReference1

    Ps 创建临时表  CREATE TABLE #TEMP 加两个##表示系统级别的临时表

    你永远不知道下一个转角等待你的是什么。
  • 相关阅读:
    岩石圈
    地球及其圈层结构
    如何请教一个技术问题
    中国游戏路在何方?
    5.4删除二叉搜索树的任意元素
    5.3 删除二叉搜索树的最大元素和最小元素
    uni-app开发小程序准备阶段
    5.2二叉搜索树遍历(前序、中序、后序、层次、广度优先遍历)
    5.1二叉搜索树基础
    【loj
  • 原文地址:https://www.cnblogs.com/Nagisa-Saku/p/5706508.html
Copyright © 2020-2023  润新知