Tôi đang làm việc với Crystal Báo cáo 2016. Nguồn dữ liệu là MS SQL Server 2008 R2. Tôi hiện có thể nhắc người dùng về phạm vi ngày cho báo cáo của mình bằng tham số. Tôi cũng muốn thêm một dấu nhắc cho một phạm vi thời gian. Sử dụng lời nhắc cho tham số DateTime không làm những gì tôi muốn. Phạm vi ngày sẽ chọn một cửa sổ ngày lớn hơn và phạm vi thời gian sẽ chọn thời gian trong ngày báo cáo sẽ hiển thị dữ liệu. Sử dụng lời nhắc tham số DateTime chỉ đơn thuần là thêm độ chính xác cho ngày bắt đầu và ngày kết thúc của báo cáo và không làm những gì tôi muốn. Cả hai lời nhắc sẽ đề cập đến cùng một bản ghi DateTime trong cơ sở dữ liệu.
Tôi đã thử thêm một dấu nhắc tham số riêng biệt, thứ hai, chỉ trong một thời gian, nhưng điều đó có kết quả tương tự như thay đổi lời nhắc tham số thành giá trị DateTime. Tôi sẽ nhắc lại: đó không phải là kết quả mong muốn của tôi.
Như một ví dụ cụ thể, cụ thể, tôi muốn sử dụng dữ liệu có giá trị từ ngày 1 tháng 9 đến ngày 31 tháng 10 trong đó điều tôi đang báo cáo xảy ra trong khoảng thời gian từ 2 giờ chiều đến 10 giờ tối EST vào bất kỳ hoặc tất cả những ngày đó. Nếu tôi có lựa chọn DateTime, tôi có thể chọn ngày 1 tháng 9, 2 giờ chiều và ngày 31 tháng 10, 10 giờ tối. Tuy nhiên, đó không phải là những gì tôi đang cố gắng chọn.
Về cơ bản, chọn dữ liệu xảy ra vào những ngày này trong khoảng thời gian từ 2 giờ chiều đến 10 giờ tối. Trong đó ngày bắt đầu và ngày kết thúc có thể lựa chọn; và thời gian bắt đầu và thời gian kết thúc có thể lựa chọn.
Sử dụng cách nói SQL, tôi nghĩ rằng tôi muốn tham gia bên trong phạm vi ngày và phạm vi thời gian (trung tâm):
Một ví dụ hoàn toàn không liên quan nhưng tương tự; hiện tượng này tương tự như các cuộc họp trong Outlook. Bạn có thể (nhưng không nên) thực hiện một cuộc họp thực sự kéo dài bắt đầu vào 1 ngày / lần và kết thúc vào một ngày / thời gian khác vài ngày sau đó, nhưng bạn nên thực hiện một cuộc họp định kỳ để quản lý đúng lịch trình của bạn và phòng của bạn. Tôi đang tìm cách chọn hồ sơ theo cách tương tự như một cuộc họp định kỳ.
Làm cách nào tôi có thể tạo select expert
quy tắc để nhận dữ liệu tôi đang tìm kiếm? Có một số cách khác tôi có thể làm điều này? Có thể là một báo cáo con?
HH
nằm trong khoảng từ 2 giờ đến 10 giờ tối bằng cách sử dụng DATEPART
hàm. Vì vậy, ví dụ mà không được cột rõ ràng bằng cách sử dụng SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
trong chế độ xem và sau đó trỏ select expert
báo cáo để lấy dữ liệu cho các khoảng thời gian ngày đã chọn từ nó. Một cách khác là tạo cùng một truy vấn T-SQL thành Lệnh CR SQL nhưng chế độ xem SQL có thể hoạt động tốt hơn nhiều.
SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
và bạn có thể là cột cụ thể với truy vấn trong chế độ xem SQL, select column1, column2 FROM ~
v.v. thay vì *
.