Итак, я новичок в SQL World, поэтому, пожалуйста, простите, насколько неосведомлен этот вопрос. Скорее всего, мне понадобится сделать хранимую процедуру для этого, но попытаюсь заставить ее работать в запросе, прежде чем я перейду к следующему шагу.Выбор диапазона дат, подсчет нескольких записей в зависимости от диапазона, группа по смене
Я пытаюсь сделать следующее:
Выбрать записи между определенные даты
Количество записей, данные условия в где заявление. У меня есть 6 разных записей для подсчета, для чего потребуется новый столбец для каждого счета.
Затем я хочу Группе A или B
я могу рассчитывать записи, как так далее.
SELECT (SELECT COUNT(*) AS 6F
FROM dbo.1_Data
WHERE ([B] BETWEEN 1 AND 9) AND (Time BETWEEN CONVERT(DATETIME, '2014-01-01 00:00:00', 102) AND CONVERT(DATETIME,
'2014-02-01 00:00:00', 102))) AS 6F,
(SELECT COUNT(*) AS 5E
FROM dbo.1_Data AS 1_Data_1
WHERE ([B] = 10) AND (Time BETWEEN CONVERT(DATETIME, '2014-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2014-02-01 00:00:00',
102))) AS 5E,
(SELECT COUNT(*) AS 4D
FROM dbo.1_Data AS 1_Data_2
WHERE ([B] BETWEEN 11 AND 13) AND (Time BETWEEN CONVERT(DATETIME, '2014-01-01 00:00:00', 102) AND CONVERT(DATETIME,
'2014-02-01 00:00:00', 102))) AS 4D,
(SELECT COUNT(*) AS 1A
FROM dbo.1_Data AS 1_Data_3
WHERE ([B] = 14) AND (Time BETWEEN CONVERT(DATETIME, '2014-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2014-02-01 00:00:00',
102))) AS 1A,
(SELECT COUNT(*) AS 2B
FROM dbo.1_Data AS 1_Data_4
WHERE ([A Step] BETWEEN 1 AND 25) AND (Time BETWEEN CONVERT(DATETIME, '2014-01-01 00:00:00', 102) AND CONVERT(DATETIME,
'2014-02-01 00:00:00', 102))) AS 2B,
(SELECT COUNT(*) AS 3C
FROM dbo.1_Data AS 1_Data_5
WHERE ([B Step] = 0) AND ([ A Step] = 0) AND (Time BETWEEN CONVERT(DATETIME, '2014-01-01 00:00:00', 102) AND
CONVERT(DATETIME, '2014-02-01 00:00:00', 102))) AS 3C
Я могу сделать это, чтобы получить количество записей на данном этапе во время диапазона и сгруппировать.
SELECT COUNT([B]) AS [1A], Letter
FROM dbo.1_Data
WHERE (Time BETWEEN CONVERT(DATETIME, '2014-01-05 00:00:00', 102) AND CONVERT(DATETIME, '2014-01-10 00:00:00', 102)) AND ([B] = 14)
GROUP BY Letter
Я ищу окончательные результаты, чтобы посмотреть что-то похожее на это. С именем столбца сверху и количеством записей ниже.
Колонна 1А, с подсчета записей для A и B. рассчитывать на
| 1A | Письмо |
| 34 | A |
| 93 | B |
Как я могу объединить все это в один запрос, чтобы отсортировать данные в заданном диапазоне дат и условиях, а затем сгруппировать по букве?
Это сработало. Я надеялся, что вам нужно будет только изменить StartDate и EndDate один раз. Но я могу решить это с помощью параметров хранимой процедуры. Благодарим за помощь. Я отметил ваш ответ. – user2644176
Nevermind. Виноват. Это будет отлично работать с правильным там, где есть заявление. Еще раз спасибо за помощь в этом. – user2644176