程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了选择随机行,并在达到特定的总和/总计时停止大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决选择随机行,并在达到特定的总和/总计时停止?

开发过程中遇到选择随机行,并在达到特定的总和/总计时停止的问题如何解决?下面主要结合日常开发的经验,给出你关于选择随机行,并在达到特定的总和/总计时停止的解决方法建议,希望对你解决选择随机行,并在达到特定的总和/总计时停止有所启发或帮助;

由于您使用的是sql Server 2012,因此这是一种无需循环的简单方法。

DECLARE @tbl table(mDate DATE, Miles INT)

INSERT @tbl VALUES
('20120201', 520),  ('20120312', 620),
('20120313', 720),  ('20120314', 560),
('20120315', 380),  ('20120316', 990),
('20120317', 1020), ('20120412', 520);

;WITH x AS 
(
 SELECT 
   mDate, 
   Miles, 
   s = SUM(Miles) OVER 
   (
     ORDER BY NEWID() ROWS UNBOUNDED PRECEDING
   )
 FROM @tbl
 WHERE mDate >= '20120301' 
 AND mDate < '20120401'
)
SELECT 
  mDate, 
  Miles, 
  s
FROM x 
WHERE s <= 3250
ORDER BY s;

SQLfiddle演示-多次单击“运行sql”以查看随机结果。

解决方法

我正在使用SQL Server 2012,并且正在尝试执行以下操作:

SELECT SUM(MILES) from tblName WHERE 
mDate > = '03/01/2012' and 
mDate <= '03/31/2012' 
-- and...
/* 
   now I want to add here do until the SUM of Miles 
   is equal to or greater then '3250' and get the 
   results rows randomly
*/

因此,换句话说,我想从表中选择具有指定的截止日期和日期的随机行,并在里程总和等于或大于该数字时停止:3250

大佬总结

以上是大佬教程为你收集整理的选择随机行,并在达到特定的总和/总计时停止全部内容,希望文章能够帮你解决选择随机行,并在达到特定的总和/总计时停止所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: