2017-05-10 1 views
0

ich eine Rasteransicht an meiner vorderen Ende aspx Seite habe. Ich möchte Bußgelder jedes ausgegebenen Buches zeigen. Wenn es keine Geldstrafe gibt, wird "Null" in dieser Zeile angezeigt.Ich mag eine einfache Abfrage in einem Bibliothek-Management-System in Ordnung der Bücher berechnen

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 

Ich habe die obige Abfrage versucht, aber es verursacht Fehler.

+0

Bitte bearbeiten Sie Ihre Post Tabellen Struktur und den Fehler hinzufügen. Warum setzen Sie den Tag "asp.net"? – Emanuele

+1

Welchen Fehler erhalten Sie? – Arulkumar

+1

Nicht sicher, dass Sie erhalten Fehler über 'Unterabfrage gab mehr als 1 value'. Wenn ja, können Sie diese Abfrage verwenden SELECT *, CASE WHEN DATEDIFF (TAG, Issue, das Rückgabedatum) <2 THEN DATEDIFF (TAG, Issue, das Rückgabedatum) * 10 ELSE 0 END AS Fein VON IssueBookStudent' – Arulkumar

Antwort

0

Ich denke, der Ansatz, den Sie verwenden nicht stimmt. Um das ausgegebene Datum und das Rückgabedatum zu erhalten, übergeben Sie kein angegebenes Buch.

Versuch unter Abfrage mit

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