【问题标题】:SQL query to calculate percentage in between two datesSQL查询计算两个日期之间的百分比
【发布时间】:2015-03-18 10:55:53
【问题描述】:

我想计算两个日期之间的百分比。下表给出了两天计数的值。从两个文本框(txtStart 和 txtEnd)读取日期。

slNo  productName  count1  count2
....  ...........  .....   ......
1     A             50      20
2     B             30      39
3     C             20      23
4     D             15      34
5     E             18      45

我的查询:

SELECT  slNo  
        productName  
        count1, count2
        cast((count1* 100.0) / (DATEDIFF(day, @start, @end) * 250)) AS  
        Percentage1, cast((count2* 100.0) / (DATEDIFF(day, @start, @end) 
        * 250)) AS Percentage2 FROM  dbo.tblPercentage

在使用上述查询时,我遇到了一个错误。错误是:"Incorrect parameter count in the call to native function 'DATEDIFF'"

如何获取日期差异并应用于上述 sql 查询。

每天计数 250 个按 100% 计算。上表显示两天计数。所以 2*250 被认为是 100%。如果算上 3 天,那么它将是 3*250。 所以帮助我使用 sql 查询计算百分比。谢谢

【问题讨论】:

  • 没有。 10%,因为上表显示的是两天的值。所以我们必须使用 2*250 来计算百分比。
  • @Reshma 您想获取两个日期(开始日期、结束日期)的总天数?
  • @KhurramAli:没有。我想获得两个日期之间的产品总数。我已经计算并存储在表格上方。不,我想根据dade差异*250计算该计数的百分比
  • @KhurramAli:我已经更新了我的问题。我收到新错误。请帮帮我。
  • @Reshma 什么是 count1 ,count2 列>?

标签: sql percentage date-difference


【解决方案1】:

如果我正确理解您的问题,您可能正在寻找这个

SELECT  slNo  
        productName  
        count, 
        cast(((DATEDIFF(day,'2014-08-05','2014-06-05') * 250.0) / 250) AS decimal(9, 3)) Percentage1 
FROM  dbo.tblPercentage

注意:您可以将日期替换为您从此类文本框中获取的开始日期和结束日期参数

DATEDIFF(day,@startdate,@enddate)

【讨论】:

  • @Kuurram Ali:在上面的答案中,我怎样才能得到计数的百分比?
  • SELECT slNo productName count, cast((count * 250.0) / (DATEDIFF(day,'2014-08-05','2014-06-05') * 250.0)) AS decimal(9 , 3)) Percentage1 FROM dbo.tblPercentage
  • @Reshma : 如果你清楚地描述了你真正想要的东西,那么我可以很容易地帮助你
  • @Reshma 编辑你的问题添加必要的细节比如你的表模式和示例数据以及你真正想要的输出示例数据......如果你能提供 sqlfiddle 会更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多