【发布时间】:2018-03-16 07:19:20
【问题描述】:
DATE Item Count
------------------------------------------
2018-03-15 Basketball 1000
2018-03-12 Basketball 950
2018-03-07 Basketball 900
2018-03-02 Basketball 850
上面的这些行属于表中的不同行位置,它们的排序方式类似于使用下面的查询和下面的查询在存储过程中。
我要做的是找到两个日期之间的计数差异数和天数差异
select Top 1 Date, Item, Count
from SportsItemSells
where @Item ='BasketBall'
order by DATE desc -- returns first row
select Date, ITEM, Count
from SportsItemsSells
where @Item =Item
order by DATE desc
offset 1 rows
fetch next 1 row only; -- returns second row
Select Date, ITEM, Count
from SportsItemsSells
where @Item =Item
order by DATE desc
offset 2 rows
fetch next 1 row only; -- returns third row
当我尝试计算存储过程中两个日期之间的天数差异时,它总是返回零
@DayDifferenceCalculation1 = DateDIFF( day,@Date,@Date)
我想要的是DateDiff(Day,@DateRow1,@DateRow2)(但是如何为不同的日期和不同的行动态定义日期?)
@CountDifferenceCalculation1 = @Count - @Count (
不管怎样,它总是返回零。
我想要的是
@CountDifferenceCalculation1 = @Count1 - @Count2 )
但是所有这些计数都设置为@Count 和日期为@Date 如何以不同的方式为不同的行定义@Date 和@Count?
任何帮助将不胜感激
【问题讨论】:
-
如果您详细说明您在商店 proc 中尝试的内容,将会很有帮助。
-
请添加源表数据和您想要的结果......这将有助于查看可能的方法。
-
当我试图找出天差之间的差异时,它总是给我零,因为 DATEDIFF(day,@Date,@Date) 始终为零,但如果我们取差,我不希望它为零在第一行日期和第二行日期之间,它应该给我 3 天的差异
-
在上表之间还有其他行用于棒球,足球,但我使用这些查询仅选择篮球......上表中的那些行可能在表中的任何位置,而不是一个之后另一个......所以我在商店过程中使用了那些选择查询......
标签: sql tsql stored-procedures sql-server-2012