2012-02-01 9 views
0

現在、私のクエリは[CountAccns]フィールドになりますが、それは毎月のカウントを返していますが、私は日々のカウントが必要です!私が代わりに毎月の毎日CountAccns数を返すんか1日あたりのカウントを取得する

;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であることを信じて、私はそれを解決する方法を知りません。

+1

DATEPART(dd、[Date Entered])でグループ化しているときの月間合計をどのように持つことができるのか、 DATENAME関数は、あなたのcase文の代わりに月/日を文字列として使用することができます:LEFT(DATENAME(MONTH、GETDATE())、3)= 'jan' :まだ開発段階にある場合は、データベース構造の見直しを検討してください。列名にスペースを入れることができるからといって、あなたがすべきことではありません!最後に、なぜあなたがCTEを使用しているのかわかりません。 – GarethD

+0

@GarethD貴重なアドバイスをいただきありがとうございます。 –

+0

@GarethD im毎月毎月したくないですよ。 –

答えて

1

私はあなたのデータ構造は確かではありませんが、同じ練習コードで複数の販売担当者のレコードが存在する場合は、両方の販売を表示する唯一の方法担当者は、その練習コードのための複数の行のデータを持つことです...

関連する問題