Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tìm giá trị trung bình giữa HAI ngày SQL Server 2008

Nếu ý bạn là bộ ngày bắt đầu và ngày kết thúc, sau đó đặt chúng vào một cột:

WITH t AS (
       SELECT invoice_no, invoice_start_date, invoice_end_date, check_date, status_code,
       FROM INVOICE_HEADER INNER JOIN
            INVOICE_HEADER_CUSTOM
            ON INVOICE_HEADER.invoice_id = INVOICE_HEADER_CUSTOM.invoice_id
       WHERE status_code <> 'REJECTED' AND 
             Check_Date BETWEEN CONVERT(DATETIME, '2014-12-01 00:00:00', 102) AND
             CONVERT(DATETIME, '2014-12-31 00:00:00', 102)
     ), 
     t2 as (
      select d, row_number() over (order by d) as seqnum,
             count(*) over () as cnt
      from (select invoice_start_date as d from t
            union all
            select invoice_end_date as d from t
           ) t
     )
select dateadd(day, datediff(hour, min(d), max(d)) / 2.0, min(d))
from t2
where 2 * seqnum in (cnt, cnt + 1, cnt + 2);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vòng lặp while trong SQL Server 2008 lặp qua phạm vi ngày và sau đó CHÈN

  2. Làm cách nào để tìm thư mục dữ liệu cho phiên bản SQL Server?

  3. Có thể chọn một LỆNH ĐẶT BẰNG cụ thể trong SQL Server 2008 không?

  4. Cập nhật một hàng đơn với t-sql

  5. Ví dụ về SQUARE () trong SQL Server