Я полностью новичок в SQL, и я работаю над созданием фида данных из программного обеспечения для точки продажи для анализа сторонних производителей. Ниже приведены требования к CSV, которые будут загружены на канал данных:Включая результаты NULL как Zero при использовании COUNT и SUM
Файл .CSV должен содержать строки со следующими значениями: в Магазине ID указывает уникальный идентификатор магазина (т.е. store1), и должен укажите название своей цепочки (в том же формате, что и имя файла), и конкретный номер магазина. Это не должно содержать пробелов или знаков препинания до или после запятой.
-The ДАТА в формате/ДД/ГГГГ ММ
-hh соответствует соответствующему час, используя 24-часовые часы (0-23, где 0 указывает на полуночи до 1 AM).
-Значение COUNT - это количество транзакций за этот конкретный час работы, как определено в предыдущем разделе.
- Значение SALES DOLLARS соответствует общему объему продаж, накопленному за этот час, как определено в предыдущем разделе. Обратите внимание, что запятые не могут использоваться в качестве разделителей тысяч или символов знака доллара.
-TRAFFIC PLACEHOLDER - обязательное поле, но оно должно быть оставлено как значение 0.
Пример вывода
Wxyz434,02/28/2011,13,56,446.34,0
Wxyz434,02/28/2011,14,61,482.28,0
Wxyz434,02/28/2011,15,63,382.80,0
Я был в состоянии определить местонахождение тыс е таблицы в рамках программы экспортирования данных в пределах моего POS программного обеспечения, и я использовали этот SQL-запрос:
/***** Script for Headcount Data *****/
select [STR_ID]
,[BUS_DAT]
,[TKT_TIM_HR]
,COUNT ([TKT_NO])
,SUM ([SAL_TOT])
from MyData.dbo.VI_PS_TKT_HIST
where BUS_DAT between '04-24-2013 00:00:00' and '04-24-2013 11:59:59' and
TKT_TIM_HR between '10' and '19'
group by BUS_DAT, STR_ID, TKT_TIM_HR
С частичными результатами:
"STR_ID", "BUS_DAT", "TKT_TIM_HR " "поле", "Field_1"
"1", "4/24/2013 12: 00: 00,000 AM", 19,1,270.27
"11"," 4/24/2013 12: 00: 00.000 AM ", 10,1,32.95
"11", "4/24/2013 12: 00: 00,000 AM", 12,4,229.24
"11", "4/24/2013 12: 00: 00,000 AM", 13,1,137.28
Вы заметите, что TKT_TIM_HR является чАС, что билет будет обработан, и не было билетов, обработанные в 11 час.
Как изменить запрос, чтобы строка существовала в течение 11 часов, даже если нет билетов/номеров продаж?(Count NULL в ноль ??)
Большое спасибо за любую помощь ,,
Тайлер
FYI, что вы пытаетесь достичь, называется 'пробелы заполнения в разреженной data' и, как правило, лучше всего сделать с помощью' секционированной внешней join' к таблице (или запросу), в которой перечислены комбинации «каждый день/час» в том диапазоне, который вам нужен. Какие СУБД вы используете? Это 'mysql',' oracle', 'sqlite' и т. Д.? –
Обратите внимание, что если 'partitioned external join' недоступен, вы можете использовать' left external join' в своей таблице дат и часов. –
Спасибо Томми. У меня есть доступ к SQL Server Studio 2008 R2, однако сценарий используется для генерации экспорта данных из самого ПО POS (Counterpoint SQL). –