日付の間の年月日を示すこの関数があります。ビューテーブルでは、開始日と終了日のデータがあります。その機能をビューテーブルにどのように統合することが可能ですか?ビューテーブル内のSQL関数
USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
alter FUNCTION [db].[GetDateDifference]
(
@FromDate DATETIME, @ToDate DATETIME
)
RETURNS
@DateDifference TABLE (
YEAR INT, MONTH INT, DAYS INT)
AS
BEGIN
DECLARE @Years INT, @Months INT, @Days INT, @tmpFromDate DATETIME
SET @Years = DATEDIFF(YEAR, @FromDate, @ToDate)
- (CASE WHEN DATEADD(YEAR, DATEDIFF(YEAR, @FromDate, @ToDate),
@FromDate) > @ToDate THEN 1 ELSE 0 END)
SET @tmpFromDate = DATEADD(YEAR, @Years , @FromDate)
SET @Months = DATEDIFF(MONTH, @tmpFromDate, @ToDate)
- (CASE WHEN DATEADD(MONTH,DATEDIFF(MONTH, @tmpFromDate, @ToDate),
@tmpFromDate) > @ToDate THEN 1 ELSE 0 END)
SET @tmpFromDate = DATEADD(MONTH, @Months , @tmpFromDate)
SET @Days = DATEDIFF(DAY, @tmpFromDate, @ToDate)
- (CASE WHEN DATEADD(DAY, DATEDIFF(DAY, @tmpFromDate, @ToDate),
@tmpFromDate) > @ToDate THEN 1 ELSE 0 END)
INSERT INTO @DateDifference
VALUES(@Years, @Months, @Days)
RETURN
END
、ここで私の見解テーブルです:
USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
alter VIEW [db].[View_ServiceTickets]
AS
SELECT TOP 99
ServiceTicketDate,
BillingDate as 'Project Finished',
InspectionScheduleDate
FROM tblServiceTicket INNER JOIN
tblServiceTicketReport on tblServiceTicket.ServiceTicketID = tblServiceTicketReport.ServiceTicketID
where ServiceTicketDate > '2016'
order by ServiceTicketDate desc
GO
はそんなに
このデータベースを使用していると思われるSQL Serverタグを追加しました。 –
ご存知のように、これはクライアント側でも達成できます。計算値の目的は何ですか? –
@Ivan Starostin私はこれをExcelレポートに必要とします。 –