zoukankan      html  css  js  c++  java
  • update 大表

    --SELECT * FROM sale_detail sd WHERE split_count IS NOT NULL

    --SELECT * FROM sale_detail sd WHERE split_amount IS NULL

    SET NOCOUNT OFF

    WHILE 1=1

    BEGIN

    WITH cte AS

    (

    SELECT TOP (100000) * FROM dbo.sale_detail WHERE split_count IS NULL OR split_amount IS NULL

    )

    UPDATE ssd SET ssd.split_count=tt.split_count,ssd.split_amount=tt.split_amount

    FROM cte ssd

    JOIN (

    SELECT a.rid,SUM(ISNULL(a.split_units,0)) AS split_count,SUM(ISNULL(a.split_rmb,0)) AS split_amount

    FROM (

    SELECT sd.rid, SUM(( CASE WHEN pk.count IS NULL THEN 1 ELSE pk.count END ) * sd.count) AS split_units,

    SUM(CASE WHEN pk.price IS NULL THEN sd.amount ELSE pk.price * pk.count * sd.count END ) AS split_rmb

    FROM cte sd WITH(NOLOCK)

    LEFT JOIN product p WITH(NOLOCK) ON p.product_id = sd.product_id

    LEFT JOIN product_kit pk WITH(NOLOCK) ON pk.kit_id = p.product_id

    AND pk.status = 0

    AND sd.sale_date >= pk.start_date

    AND sd.sale_date <= pk.end_date

    WHERE sd.status = 0

    AND p.status <> 1

    AND p.ispromotion = 0

    GROUP BY sd.rid

    ) a

    GROUP BY a.rid

    ) tt ON ssd.rid = tt.rid

     IF @@ROWCOUNT<100000 BREAK;

    end

  • 相关阅读:
    SDN课程阅读作业(2)
    2019 SDN上机第5次作业
    linux 最常用命令
    tomcat 部署 React 项目后,浏览器刷新报404问题
    Java8 ~ 特性
    React ~ 小结
    ES6 map与filter
    Idea 快捷键
    实现div可以调整高度(div实现resize)
    linux常用命令(4)
  • 原文地址:https://www.cnblogs.com/dotagg/p/6372070.html
Copyright © 2011-2022 走看看