如何在查询中显示前一天的值

时间:2010-06-01 19:15:12

标签: sql vb.net

我想我会发疯的。请帮助。

我有一个表格,其中包括Date,No,Turnover,TotalWin,Opencredit,Handpay,Billin,gamesplayed,我正在尝试在vb.net中编写sql,这将显示我前一天的价值,但我不能。这是我想要做的。

SELECT Meter.* 
FROM 
  Meter AS Previous, 
  Turnover As Prev_turnover  
WHERE Date = '
  SELECT Max(Date) 
  FROM Meter AS Previous2
  WHERE Previous2.Date < Date 
  AND Previous2.No = ‘No' 
  AND Previous.No = ‘No’ 

我在做错的地方出了什么问题我真的不知道。如果有人帮助将不胜感激。

由于


Ok Thomas我无法正确回答你的问题,因为我生命中的第一次尝试编写sql。我在MSAccess中这样做很容易。现在我得到了非常简单的错误,我想这个代码,但我再也找不到解决方案了。有什么不对。

SELECT [Date],[No],Turnover,TotalWin,GamesPlayed,CreditIn,BillIn,HandPay 来自仪表以前, 营业额为Prev_turnover WHERE [Date] ='SELECT Max([Date])FROM Meter As Previous2 WHERE Previous2。[Date]&lt; [Date] AND Previous。[No] = [No]'


那么这个错误呢?“没有为一个或多个必需参数赋予值”

现在我正在使用该代码:

SELECT Meter。[Date],Meter。[No],Meter.Turnover,Meter.TotalWin,Meter.GamesPlayed,Meter.CreditIn,Meter.BillIn,Meter.HandPay 来自仪表以前, 营业额为Prev_turnover WHERE Meter。[Date] ='SELECT Max(Meter。[Date])FROM Meter As Previous2 WHERE Previous2。[Date]

2 个答案:

答案 0 :(得分:1)

你有什么具体问题?它返回错误的值还是只是给你一个错误?

我猜你只需要获得前几天的日期。如果是SQL Server中的情况,您可以像这样使用DATEADD函数:select DATEADD(day,-1,date)。您也可以在where子句或join子句中使用它。

答案 1 :(得分:0)

我找到了答案

SELECT     Date, No, Turnover, [Total Win], [Games Played], [Credit In], [Bill In], [Hand Pay]

FROM tblMeter WHERE(日期&gt; = DATEADD(日,DATEDIFF(日,1,GETDATE()),0))和(日期&lt; DATEADD(日,DATEDIFF(日,0,GETDATE()),0))

向所有试图帮助我的人致敬。