Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server ave使用活接头代替或以前。但是,我应该避免所有的ORs和INs吗?我可以想到一个不相关的查询,其中我的条件在in子句中有6个项。我是否应该用5个联合体编写6个查询#3.抓得好。我感谢你的帮助#2.这应根据实际执行计划予以考虑。如果您没有大量的记录,或/I_Sql Server - Fatal编程技术网

Sql server ave使用活接头代替或以前。但是,我应该避免所有的ORs和INs吗?我可以想到一个不相关的查询,其中我的条件在in子句中有6个项。我是否应该用5个联合体编写6个查询#3.抓得好。我感谢你的帮助#2.这应根据实际执行计划予以考虑。如果您没有大量的记录,或/I

Sql server ave使用活接头代替或以前。但是,我应该避免所有的ORs和INs吗?我可以想到一个不相关的查询,其中我的条件在in子句中有6个项。我是否应该用5个联合体编写6个查询#3.抓得好。我感谢你的帮助#2.这应根据实际执行计划予以考虑。如果您没有大量的记录,或/I,sql-server,Sql Server,ave使用活接头代替或以前。但是,我应该避免所有的ORs和INs吗?我可以想到一个不相关的查询,其中我的条件在in子句中有6个项。我是否应该用5个联合体编写6个查询#3.抓得好。我感谢你的帮助#2.这应根据实际执行计划予以考虑。如果您没有大量的记录,或/IN可能仍然会得到一个合理的时间。此外,对于复杂查询,您可以定义一个临时表并执行多个插入。除了可能的性能优化之外,它还允许更轻松的调试(每次插入后临时检查)。 name | paid_adjustment_amount | adj_date Bo


ave使用活接头代替或以前。但是,我应该避免所有的ORs和INs吗?我可以想到一个不相关的查询,其中我的条件在in子句中有6个项。我是否应该用5个联合体编写6个查询#3.抓得好。我感谢你的帮助#2.这应根据实际执行计划予以考虑。如果您没有大量的记录,或/IN可能仍然会得到一个合理的时间。此外,对于复杂查询,您可以定义一个临时表并执行多个插入。除了可能的性能优化之外,它还允许更轻松的调试(每次插入后临时检查)。
name | paid_adjustment_amount | adj_date
Bob  | 1000                   | 4/7/2016
Mary | 2000                   | 4/8/2016
Bill | 5000                   | 4/8/2016
Mary | 4000                   | 4/10/2016
Bill | (1000)                 | 4/12/2016
Ann  | 3000                   | 4/30/2016
name | total_paid_amount
Bob  | 1000
Mary | 6000
Bill | 4000
Ann  | 3000
name | paid_to_date_amount
Bob  | 1000
Mary | 8000
Bill | 3000
Ann  | 3000
Joe  | 4000      
INSERT INTO contractor
SELECT to_date_payment.name, 
    to_date_payment.paid_to_date_amount - v_sum.total_paid_amount,
    GETDATE()
FROM to_date_payment
LEFT JOIN v_sum ON to_date_payment.name = v_sum.name
WHERE to_date_payment.paid_to_date_amount - v_sum.total_paid_amount <> 0
    OR v_sum.name IS NULL
SELECT to_date_payment.name, 
    to_date_payment.paid_to_date_amount - v_sum.total_paid_amount,
    GETDATE()
FROM to_date_payment
JOIN v_sum ON to_date_payment.name = v_sum.name
WHERE to_date_payment.paid_to_date_amount - v_sum.total_paid_amount <> 0

UNION ALL

SELECT to_date_payment.name, 
    to_date_payment.paid_to_date_amount,    -- or NULL if this is really intended
    GETDATE()
FROM to_date_payment
-- NOT EXISTS is usually faster than LEFT JOIN ... IS NULL
WHERE NOT EXISTS (SELECT 1 FROM v_sum V WHERE V.name = to_date_payment.name)