Запрос данных

Alex Pancho
Дата: 12.03.2016 23:47:35
Вопрос, наверное, ближе к МС-Скл, перенесите, если не туда:

Есть таблица вида:
PersonalID(таб номер)-pDay(Дата)-pTime(время)-событие-ФИО
Для каждого сотрудника должно быть два события на дату: 1 - вход и 0 - выход.
Как выбрать данные по сотрудникам для которых на один день есть только событие "вход" или только событие "выход"?
__Michelle
Дата: 12.03.2016 23:58:01
SELECT .... WHERE (Вход OR Выход) AND NOT (Вход AND Выход)
mds_world
Дата: 13.03.2016 00:34:26
SELECT PersonalID, pDay, ФИО
FROM Таблица
GROUP BY PersonalID, pDay, ФИО
having Count(*) mod 2=1
__Michelle
Дата: 13.03.2016 00:57:05
__Michelle
SELECT .... WHERE (Вход OR Выход) AND NOT (Вход AND Выход)
Да. Это неправильно.
Не два события в одной записи, а на каждое событие одна запись.
Alex Pancho
Дата: 13.03.2016 08:35:27
mds_world,
Спасибо, это магия :)
Alex Pancho
Дата: 13.03.2016 09:15:27
А еще вопрос: как побороть делиметер (разделитель в *.csv)? Есть вероятность что в БД будут импортить данные из разных стран. будут разные разделители, надо, чтоб нигде не ругалось
Нагуглил на эту тему просто тьму материала, хочу спросить какой самый простой и кошерный путь:
1) Использовать что-то экзотическое в schemas.ini
2) менять параметры в реестре
3) использовать ";"
4) ???
Анатолий ( Киев )
Дата: 14.03.2016 14:44:06
Вы не нагуглили главного - в Аксе для импорта из текстовых файлов (а также экспорта и связывания) используются спецификации собственного разлива.
На западе используется разделитель полей ",", десятичный разделитель "." ну и возможен другой формат даты.
Возьмите такой файл и импортируйте его вручную. При этом вам будет предложено настроить спецификацию. Сохраните ее под каким-то именем и указывайте при выполнении TransferText при необходимости.
Определить, что в файле, можно прочитав и проанализировав из него строку с данными. Это несложно сделать средствами VBA.
Alex Pancho
Дата: 14.03.2016 15:19:04
Анатолий ( Киев ),

Спасибо, я примерно так и сделал - только я точно знаю структуру файла и создаю схема-ини.
Код вывода и новый вопрос тут: http://www.sql.ru/forum/1205153/vyvod-v-fayl-v-utf-8
Анатолий ( Киев )
Дата: 15.03.2016 16:05:01
Alex Pancho
я точно знаю структуру файла
Т.е. вы перед импортом точно знаете, какой разделитель полей в файле? Ну так добавьте в функцию SchemaIniCreate 2-й аргумент, от которого зависит "Format = Delimited(;)".

Кстати, можно обойтись и без удаления/создания связанной таблицы, открывая Recordset непосредственно на запросе к файлу типа:
SELECT * FROM [Имя Файла.csv] IN 'C:\Папка' [Text;FMT=Delimited;HDR=NO;]
Alex Pancho
Дата: 28.05.2016 10:39:06
mds_world
SELECT PersonalID, pDay, ФИО
FROM Таблица
GROUP BY PersonalID, pDay, ФИО
having Count(*) mod 2=1


Не работает, если человек работает ночью, т.е. приходит в день 01 а уходит в день 02....
Как сделать учёт для такого случая?