Chúng tôi có orders
dữ liệu và chúng tôi cần tạo báo cáo Weekly - Custom date Range of 7 Days
sử dụng SQL
. Báo cáo sẽ hiển thị hàng tuần count
đơn đặt hàng. Người dùng sẽ chọn End Date
và chúng tôi cần tạo 12 đơn vị DateRange dựa trên ngày đó. Ví dụ người sử dụng chọn 1/24/2013
chúng ta cần 12 điểm/đơn vị như:Đây có phải là cách tốt nhất để viết SQL cho báo cáo này không?
Point12 = End Date - 7 Days
Point11 = End Date - 14 Days
Point10 = End Date - 21 Days
Point9 = End Date - 28 Days
.
.
Point1 = End Date - X Days
giải pháp của chúng tôi:
Chúng tôi đang có kế hoạch để tạo ra một bảng tạm thời bảng mà sẽ có 12 dòng. Mỗi hàng sẽ có dữ liệu như (chúng tôi sẽ tính toán STARTDATE và EndDate cho mỗi điểm):
Point StartDate EndDate TotalOrders
Point12 2013-01-24 2013-01-30
Point11 2013-01-17 2013-01-23
Sau này, chúng tôi sẽ nhận được count
của Đơn đặt hàng cho mỗi hàng.
Đây có phải là giải pháp tốt cho vấn đề này hoặc có thể tối ưu hóa không?
EDIT:
DATERANGE hàng tuần sẽ là một Custom date Range of 7 Days
.
@EdHeal: Tôi có thể tự làm. nhưng tôi chỉ muốn biết rằng tôi đang làm nó theo cách tốt nhất có thể. –
trong trường hợp này, bạn nên sử dụng biến Bảng để có hiệu suất tốt hơn. Bạn có thể đọc bài viết này về sự khác biệt: http://www.sql-server-performance.com/2007/temp-tables-vs-variables/ –
Làm thế nào bạn nhận được 'đếm' cho mỗi hàng? – msmucker0527