Я працюю з Crystal Reports 2016. Джерелом даних є MS SQL Server 2008 R2. Наразі я можу запропонувати користувачеві вказати діапазон дат для мого звіту за допомогою параметра. Я також хотів би додати підказку на часовий діапазон. Використання підказки для параметра DateTime не робить те, що я хочу. Діапазон дат буде вибирати більше вікно днів, а часовий діапазон визначатиме, у який час протягом дня звіт відображатиме дані. Використання запиту параметра DateTime просто додає точності до початку та кінця дня / часу звіту і не робить те, що я хочу. Обидва підказки будуть посилатися на один і той же запис DateTime в базі даних.
Я спробував додати окремий, другий, параметр підказки за той самий час, але це має такий же результат, як зміна запиту параметра на значення DateTime. Я ще раз зазначу: це не мій бажаний результат.
В якості конкретного, конкретного, прикладу, я хотів би використовувати дані, які дійсні для 1 вересня - 31 жовтня, коли річ, про яку я повідомляю, сталася між 14:00 та 22:00 EST у будь-який чи всі ці дні. Якщо у мене є вибір DateTime, я можу вибрати 1 вересня, 14:00 та 31 жовтня 22 вечора. Однак це не те, що я намагаюся вибрати.
В основному виберіть дані, які мали місце в ці дні між 14:00 та 22:00. Якщо дата початку та дата закінчення вибираються; і час початку і час закінчення вибираються.
Використовуючи SQL-мову, я думаю, що я хотів би внутрішнього з'єднання діапазону дат і часового діапазону (центральний):
Цілком незв'язаний, але подібний приклад; це явище схоже на зустрічі в Outlook. Ви могли (але не повинні) зробити дійсно довгу зустріч, яка розпочинається 1 день / час, а закінчується в інший день / час через кілька днів, але вам слід здійснити повторювану зустріч, щоб правильно керувати графіком вашого та ваших кімнат. Я хочу вибрати підписи аналогічно повторюваній зустрічі.
Як я можу скласти select expert
правило для отримання даних, які шукаю? Чи є ще якийсь спосіб я це зробити? Може, підзвіт?
HH
становить від 2 до 10 вечора за допомогою DATEPART
функції. Наприклад, не маючи явного стовпця, використовуючи його SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
у представленні даних, а потім вкажіть select expert
звіт, щоб отримати з нього дані про вибрані періоди дати. Іншим способом було б зробити той самий T-SQL запит командою CR SQL, але подання SQL може працювати набагато краще.
SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
і ви можете мати стовпець, специфічний із запитом у вікні SQL, так select column1, column2 FROM ~
тощо, а не *
.