0
현재 내 쿼리는 [CountAccns]
필드에서 월별 계산을 반환하지만 일일 계산이 필요합니다.하루에 계산하기
;with
cte_biggie ([Full Date], [Year Entered], [Month Entered], [Day Entered],
[DOW], [Week Ending] ,[CountAccns],[Sales Rep], [MLNPI], [IMSNPI], [Physician],
[Practice Code], [MLIS Code], [Practice Name],
[Date Established], [Address], [Address2], [City], [State], [Status]
) as (
select CONVERT(VARCHAR(8), [DATE entered], 1),DATEPART(yy, [DATE entered]) ,
CASE WHEN DATEPART(mm, [DATE entered]) = 01 THEN 'Jan'
WHEN DATEPART(mm, [DATE entered]) = 02 THEN 'Feb'
WHEN DATEPART(mm, [DATE entered]) = 03 THEN 'Mar'
WHEN DATEPART(mm, [DATE entered]) = 04 THEN 'Apr'
WHEN DATEPART(mm, [DATE entered]) = 05 THEN 'May'
WHEN DATEPART(mm, [DATE entered]) = 06 THEN 'Jun'
WHEN DATEPART(mm, [DATE entered]) = 07 THEN 'Jul'
WHEN DATEPART(mm, [DATE entered]) = 08 THEN 'Aug'
WHEN DATEPART(mm, [DATE entered]) = 09 THEN 'Sep'
WHEN DATEPART(mm, [DATE entered]) = 10 THEN 'Oct'
WHEN DATEPART(mm, [DATE entered]) = 11 THEN 'Nov'
WHEN DATEPART(mm, [DATE entered]) = 12 THEN 'Dec'
END
,DATEPART(dd, [DATE entered]),
case when DATEPART(WEEKDAY, [DATE entered])=1 THEN 'Sun'
when DATEPART(WEEKDAY, [DATE entered])=2 THEN 'Mon'
when DATEPART(WEEKDAY, [DATE entered])=3 THEN 'Tus'
when DATEPART(WEEKDAY, [DATE entered])=4 THEN 'Wed'
when DATEPART(WEEKDAY, [DATE entered])=5 THEN 'Thu'
when DATEPART(WEEKDAY, [DATE entered])=6 THEN 'Fri'
when DATEPART(WEEKDAY, [DATE entered])=7 THEN 'Sat'
end,
CONVERT(VARCHAR(8), DATEADD (D, -1 * DatePart (dw,[date entered]) + 6, [date entered]), 1),
count(a.[specimen id]) ,c.salesrep,c.npi,e.npib,[Requesting Physician] ,
a.[practice code],b.[mlis practice id],[practice name],
c.dateestablished , c.practiceaddress1, c.practiceaddress2,c.practicecity,c.practicestate,
b.[Active Inactive]
from quicklabdump a
left outer join qlmlismapping b
on (b.[practice code] = a.[practice code])
left outer join PracticeandPhysician c
on (a.[Requesting Physician]=c.doctorfirstname+' '+c.DOCTORLASTNAME
and a.[practice code]=c.practicecode)
left outer join TestResults d
on a.QuickLabDumpID = d.QuickLabDumpID
left outer join IMSData e
on c.NPI=e.npib
where [Date Entered] <= '20111231'
and [Date Entered] >= '20111201'
group by [DATE entered],DATEPART(yy, [DATE entered]), DATEPART(mm, [DATE entered]),DATEPART(dd, [DATE entered]), a.[practice name],b.[mlis practice id],a.[practice code],
a.[Requesting Physician],c.salesrep,c.dateestablished, c.practicecity,c.practicestate,c.npi,e.npib,c.practiceaddress1 ,c.practiceaddress2,
b.[Active Inactive]
)
select * from cte_biggie
는 ** 어떻게 내가 **
내가 주요 문제는 내 GROUP BY와하다고 생각? 대신 매달의 일상 CountAccns
수를 반환,하지만 난 그것을 해결하는 방법을 잘 모릅니다.
그 실행 코드에 대한 하나 개 이상의 데이터 행을 ...하는 것입니다 (DATENAME (MONTH, GETDATE()), 3) = 'jan'을 사용하여 월/일을 문자열로 얻는 대신 DATENAME 함수를 사용할 수 있습니다. : 또한 개발 단계에있는 경우 데이터베이스 구조의 정밀 검사를 고려하십시오. 열 이름에 공백을 넣을 수 있다고해서 꼭해야만하는 것은 아닙니다! 마지막으로 CTE를 사용하는 이유를 이해하지 못했고 그 중 하나를 선택 했습니까? – GarethD
@ GarthD는 귀중한 조언을 해주셔서 너무 감사드립니다. 내가 조언 –
@GarethD 메신저와이 업데이트됩니다 미안 내가 가장 메신저 매우 내가 어떻게 쿼리를 이해하지 않는 내 주요 문제 –