我需要一个条件为Target_L * X / Y的列。
哪里需要x和y应该自动来自查询。
今天是2018年1月27日
final = Target_L * 23/27
或
如果这是长距离的话,第二个也可以。
从这两种方法都对我有好处,我需要Q查询这个..I有日期列,月份列。使用SQL服务器
发布于 2018-01-27 14:46:12
我不知道你在问什么。但试试这个。
DECLARE @FirstDay DATETIME
SET @FirstDay = DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
DECLARE @LastDay DATETIME
SET @LastDay = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))
DECLARE @Yesterday DATETIME
SET @Yesterday = dateadd(day,datediff(day,1,GETDATE()),0)
DECLARE @DaysInMonth int
SET @DaysInMonth = DAY(EOMONTH(GETDATE()))
DECLARE @NoOFSundaysInMonth int
SET @NoOFSundaysInMonth = DATEDIFF(WK, DAteAdd(DD, -1,@FirstDay), DAteAdd(DD, 1, @LastDay))
DECLARE @NoOfDaysWithoutSunInMonth int
SET @NoOfDaysWithoutSunInMonth = @DaysInMonth - @NoOFSundaysInMonth
DECLARE @NoOFDaysTillYes int
SET @NoOFDaysTillYes = DATEDIFF(d, @FirstDay, GETDATE())
DECLARE @NoOFSunTillYes int
SET @NoOFSunTillYes = DATEDIFF(WK, DAteAdd(DD, -1,@FirstDay), DAteAdd(DD, 1, @Yesterday))
DECLARE @NoOfDaysWithoutSunTillYes int
SET @NoOfDaysWithoutSunTillYes = @NoOFDaysTillYes - @NoOFSunTillYes要检查这些值,请将其添加到查询中。
SELECT
@FirstDay AS 'First_Day',
@LastDay AS 'Last_Day',
@Yesterday AS 'Yesterday',
@DaysInMonth AS 'Days_In_Month',
@NoOFSundaysInMonth AS 'No_Of_Sundays',
@NoOfDaysWithoutSunInMonth AS 'No_OF_Days_Without_Sun',
@NoOFDaysTillYes AS 'No_OF_Days_Till_Yesterday',
@NoOFSunTillYes AS 'No_OF_Sundays_Till_Yesterday',
@NoOfDaysWithoutSunTillYes AS 'No_OF_Days_Without_Sunday_Till_Yesterday'如果'Y‘表示这个月中所有没有星期日的日子,如果'X’是指直到昨天为止的所有没有星期日的日子,你可以使用这个。
final =Target_L * X/Yfinal =Target_L * @NoOfDaysWithoutSunTillYes / @NoOfDaysWithoutSunInMonthNoOfDaysWithoutSunTillYes = 23
NoOfDaysWithoutSunInMonth = 27
https://stackoverflow.com/questions/48475889
复制相似问题