2017-05-10 51 views
0

我在我的前端aspx页面有一个网格视图。 我想展示每本书的罚款。如果没有问题,则在该行显示“零”。我想要一个简单的查询来计算书籍在图书馆管理系统中的罚款

DECLARE @Days INT, 
     @IssueDate DATE = (SELECT IssueDate FROM ISSUEBOOKSTUDENT), 
     @ReturnDate DATE = (SELECT ReturnDate FROM ISSUEBOOKSTUDENT) 

SET @Days = DATEDIFF(d,@IssueDate,@ReturnDate) 

SELECT 
    (CASE 
     WHEN @Days < 2 
      THEN @Days * 10 
      ELSE 0 
    END) Fine 

我已经尝试了上述查询,但它导致错误。

+0

请编辑您的帖子添加表结构和错误。你为什么设置“asp.net”标签? – Emanuele

+1

你收到了什么错误? – Arulkumar

+1

不确定你收到有关'子查询返回多个值'的错误。如果是这样,你可以使用这个查询SELECT *,CASE WHEN DATEDIFF(DAY,IssueDate,ReturnDate)<2 THEN DATEDIFF(DAY,IssueDate,ReturnDate)* 10 ELSE 0 END AS Fine FROM IssueBookStudent' – Arulkumar

回答

0

我认为你使用的方法是错误的。为了获得发布的日期和返回日期,你没有通过任何书。

尝试使用下面的查询

SELECT 
case when DATEDIFF(d,IssueDate ,ReturnDate) > 2 then (DATEDIFF(d,IssueDate ,ReturnDate)) *10 else 0 end AS FINE 
    from ISSUEBOOKSTUDENT