Sql server 2008 使用sql过程的顺序中的月值

Sql server 2008 使用sql过程的顺序中的月值,sql-server-2008,Sql Server 2008,我想要像DateCreated totcount这样的月序列 SELECT datecreated, totcount FROM (SELECT REPLACE(RIGHT(CONVERT(VARCHAR(9), tof.create_stamp, 6), 6), ' ', ' ') AS datecreated, COUNT(DISTINCT tof.unique_id)

我想要像DateCreated totcount这样的月序列

SELECT datecreated,
       totcount
FROM  (SELECT REPLACE(RIGHT(CONVERT(VARCHAR(9), tof.create_stamp, 6), 6), ' ', ' ') AS datecreated,
              COUNT(DISTINCT tof.unique_id)                                         AS totcount
       FROM   trn_open_files tof
              JOIN trn_debtor tb
                ON ( tof.unique_id = tb.unique_id
                     AND tb.debtor_seq_num = 1
                     AND tb.rec_status = 'R' )
              JOIN trn_property tp
                ON ( tof.unique_id = tp.unique_id )
              LEFT OUTER JOIN trn_parties prty_cccs
                ON ( prty_cccs.unique_id = tof.unique_id
                     AND prty_cccs.party_role = 'CCCS'
                     AND prty_cccs.rec_status = 'A' )
              LEFT OUTER JOIN trn_parties prty_srv
                ON ( prty_srv.unique_id = tof.unique_id
                     AND prty_srv.party_role = 'SRV'
                     AND prty_srv.rec_status = 'A' )
              LEFT OUTER JOIN trn_parties prty_vend
                ON ( prty_vend.unique_id = tof.unique_id
                     AND prty_vend.party_role = 'CLMO'
                     AND prty_vend.rec_status = 'A' )
              LEFT OUTER JOIN trn_parties prty_ins
                ON ( prty_ins.unique_id = tof.unique_id
                     AND prty_ins.party_role = 'INS'
                     AND prty_ins.rec_status = 'A' )
              LEFT OUTER JOIN trn_parties prty_ss
                ON ( prty_ss.unique_id = tof.unique_id
                     AND prty_ss.party_role = 'SS'
                     AND prty_ss.rec_status = 'A' )
              LEFT OUTER JOIN trn_parties prty_realtor
                ON ( prty_realtor.unique_id = tof.unique_id
                     AND prty_realtor.party_role = 'REALTOR'
                     AND prty_realtor.rec_status = 'A' )
              LEFT OUTER JOIN mst_comp_info mci1
                ON ( mci1.comp_id = prty_cccs.party_comp_id
                     AND mci1.comp_type = 'CCCS'
                     AND mci1.rec_status = 'A' )
              LEFT OUTER JOIN mst_comp_info mci
                ON ( mci.comp_id = prty_srv.party_comp_id
                     AND mci.comp_type = 'SRV'
                     AND mci.rec_status = 'A'
                     AND mci.pilot_flag = 'Y' )
              LEFT OUTER JOIN mst_comp_info mci2
                ON ( mci2.comp_id = prty_vend.party_comp_id
                     AND mci2.comp_type = 'VEND'
                     AND mci2.rec_status = 'A' )
              LEFT OUTER JOIN mst_comp_info mci3
                ON ( mci3.comp_id = prty_ins.party_comp_id
                     AND mci3.comp_type = 'INS'
                     AND mci3.rec_status = 'A' )
              LEFT OUTER JOIN mst_comp_info mci4
                ON ( mci4.comp_id = prty_ss.party_comp_id
                     AND mci4.comp_type = 'SS'
                     AND mci4.rec_status = 'A' )
              LEFT OUTER JOIN mst_comp_info mci5
                ON ( mci5.comp_id = prty_realtor.party_comp_id
                     AND mci4.comp_type = 'REALTOR'
                     AND mci4.rec_status = 'A' )
              LEFT OUTER JOIN mst_status_codes i
                ON ( i.status_code = tof.case_status
                     AND i.comp_id = tof.comp_id
                     AND ( i.party_role IS NULL
                            OR i.party_role = 'VEND' )
                     AND tof.file_type = i.file_type )
       WHERE  tof.cur_status = 'A'
              AND tof.cms_flag = 'Y'
              AND CONVERT(DATE, tof.create_stamp) >= CONVERT(DATE, '2010-06-06')
              AND CONVERT(DATE, tof.create_stamp) <= CONVERT(DATE, '2011-10-01')
              AND prty_cccs.party_comp_id = 10153
              AND prty_cccs.party_comp_id = 10153
       GROUP  BY REPLACE(RIGHT(CONVERT(VARCHAR(9), tof.create_stamp, 6), 6), ' ', ' '),
                 prty_cccs.party_comp_id) q1  
Sep 11 7
May 11 2
Jun 11 10
Jul 11 40
Aug 11 144

未测试,但我认为应该将REPLACERIGHTCONVERTVARCHAR9,tof.create_stamp,6,6,,“”替换为dateaddmonth,datediffmonth,0,tof.create_stamp,0,并在外部查询中执行表示操作。并将order by添加到外部查询order by q1.datecreated

May 11 2
Jun 11 10
Jul 11 40
Aug 11 144
Sep 11 7
SELECT REPLACE(RIGHT(CONVERT(VARCHAR(9), datecreated, 6), 6), ' ', ' '),
       totcount
FROM   (SELECT Dateadd(MONTH, Datediff(MONTH, 0, tof.create_stamp), 0) AS datecreated,
               COUNT(DISTINCT tof.unique_id)                           AS totcount
        FROM   trn_open_files tof
               JOIN trn_debtor tb
                 ON ( tof.unique_id = tb.unique_id
                      AND tb.debtor_seq_num = 1
                      AND tb.rec_status = 'R' )
               JOIN trn_property tp
                 ON ( tof.unique_id = tp.unique_id )
               LEFT OUTER JOIN trn_parties prty_cccs
                 ON ( prty_cccs.unique_id = tof.unique_id
                      AND prty_cccs.party_role = 'CCCS'
                      AND prty_cccs.rec_status = 'A' )
               LEFT OUTER JOIN trn_parties prty_srv
                 ON ( prty_srv.unique_id = tof.unique_id
                      AND prty_srv.party_role = 'SRV'
                      AND prty_srv.rec_status = 'A' )
               LEFT OUTER JOIN trn_parties prty_vend
                 ON ( prty_vend.unique_id = tof.unique_id
                      AND prty_vend.party_role = 'CLMO'
                      AND prty_vend.rec_status = 'A' )
               LEFT OUTER JOIN trn_parties prty_ins
                 ON ( prty_ins.unique_id = tof.unique_id
                      AND prty_ins.party_role = 'INS'
                      AND prty_ins.rec_status = 'A' )
               LEFT OUTER JOIN trn_parties prty_ss
                 ON ( prty_ss.unique_id = tof.unique_id
                      AND prty_ss.party_role = 'SS'
                      AND prty_ss.rec_status = 'A' )
               LEFT OUTER JOIN trn_parties prty_realtor
                 ON ( prty_realtor.unique_id = tof.unique_id
                      AND prty_realtor.party_role = 'REALTOR'
                      AND prty_realtor.rec_status = 'A' )
               LEFT OUTER JOIN mst_comp_info mci1
                 ON ( mci1.comp_id = prty_cccs.party_comp_id
                      AND mci1.comp_type = 'CCCS'
                      AND mci1.rec_status = 'A' )
               LEFT OUTER JOIN mst_comp_info mci
                 ON ( mci.comp_id = prty_srv.party_comp_id
                      AND mci.comp_type = 'SRV'
                      AND mci.rec_status = 'A'
                      AND mci.pilot_flag = 'Y' )
               LEFT OUTER JOIN mst_comp_info mci2
                 ON ( mci2.comp_id = prty_vend.party_comp_id
                      AND mci2.comp_type = 'VEND'
                      AND mci2.rec_status = 'A' )
               LEFT OUTER JOIN mst_comp_info mci3
                 ON ( mci3.comp_id = prty_ins.party_comp_id
                      AND mci3.comp_type = 'INS'
                      AND mci3.rec_status = 'A' )
               LEFT OUTER JOIN mst_comp_info mci4
                 ON ( mci4.comp_id = prty_ss.party_comp_id
                      AND mci4.comp_type = 'SS'
                      AND mci4.rec_status = 'A' )
               LEFT OUTER JOIN mst_comp_info mci5
                 ON ( mci5.comp_id = prty_realtor.party_comp_id
                      AND mci4.comp_type = 'REALTOR'
                      AND mci4.rec_status = 'A' )
               LEFT OUTER JOIN mst_status_codes i
                 ON ( i.status_code = tof.case_status
                      AND i.comp_id = tof.comp_id
                      AND ( i.party_role IS NULL
                             OR i.party_role = 'VEND' )
                      AND tof.file_type = i.file_type )
        WHERE  tof.cur_status = 'A'
               AND tof.cms_flag = 'Y'
               AND CONVERT(DATE, tof.create_stamp) >= CONVERT(DATE, '2010-06-06')
               AND CONVERT(DATE, tof.create_stamp) <= CONVERT(DATE, '2011-10-01')
               AND prty_cccs.party_comp_id = 10153
               AND prty_cccs.party_comp_id = 10153
        GROUP  BY Dateadd(MONTH, Datediff(MONTH, 0, tof.create_stamp), 0),
                  prty_cccs.party_comp_id) q1  
ORDER BY q1.datecreated