powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
21 сообщений из 121, страница 5 из 5
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289525
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это запусти в foxpro2.6 в окошке command
Код: sql
1.
2.
3.
SET FILTER TO (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(Pol, 'ж', 'Ж'))) .AND.(DATW>={^2016-01-01}.AND.DATW<={^2016-01-15}).AND.SRDOOP>0
count to q
? q


Сколько выдаст?
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289537
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда в visual foxpro 6 просто сохраняю не делая никаких запросов в dbf2.x и заменяю его
и при чем в коде
SET FILTER TO (((Datr <= Datp-60*365.25 or (Datr <= Datp - 55 * 365.25 and inlist(Pol, 'ж', 'Ж')))) .AND.(DATW>=MINDAT.AND.DATW<=MAXDAT).AND.SRDOOP>0)
то в итоге получается 86, если смотреть через brow то видны крязобры
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289538
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как этот код скопировать в командную строку foxpro2.6
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289541
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55как этот код скопировать в командную строку foxpro2.6
Скопируй в буфер обмена, Кликни на иконку (левый верхний угол) - Изменить - Вставить
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289552
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В досе и виндовсе разные кодовые страницы, т.е. код буквы "Ж" разный, поэтому если там код досовский, то в виндовсе кракозябра показывается. Ты мог еще накосячить в коде, если набирал его например в блокноте, где используется виндовская кодировка. Эта проблема касается только русских букв, для английских этой проблемы нет, т.к. у них одинаковые коды в обоих случаях.

Давай так сделаем, замени
Код: sql
1.
inlist(Pol, 'ж', 'Ж')


на
Код: sql
1.
inlist(asc(Pol), 198, 230, 134, 166)


это проверка кода символа в обоих кодировках. Так должно работать на кракозябрах.
т.е. вместе будет
Код: sql
1.
SET FILTER TO (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(asc(Pol), 198, 230, 134, 166))) .AND.(DATW>={^2016-01-01}.AND.DATW<={^2016-01-15}).AND.SRDOOP>0
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289574
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В FOXPRO2.6 почему то не работают вот такое {^2016-01-01}

Добавил в код
SET FILTER TO (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(asc(Pol), 198, 230, 134, 166))) .AND.(DATW>=MINDAT.AND.DATW<=MAXDAT).AND.SRDOOP>0

Заработало, показывает через brow все русские символы и кол-во 86
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289587
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55Заработало, показывает через brow все русские символы и кол-во 86
Поздравляю.
dmr55В FOXPRO2.6 почему то не работают вот такое {^2016-01-01}
Там по другому даты задавались, кажется так {2016-01-01} не помню точно.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289594
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь

198, 230, 134, 166 это вроде кодировок?
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289598
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55Спасибо за помощь

198, 230, 134, 166 это вроде кодировок?
Это коды символов 'Ж' и 'ж' в виндовсе и в досе
можешь проверить, запусти в VFP6 и foxpro2.6
Код: sql
1.
? asc('Ж'),asc('ж')
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39292801
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже данный запрос не верно считает

SET FILTER TO (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(asc(Pol), 198, 230, 134, 166))) .AND.(DATW>=MINDAT.AND.DATW<=MAXDAT).AND.SRDOOP>0

1.01.2016 - 31.01.2016
Excel
ж - 109 м - 64
по программе 173

01.02.2016 - 29.02.2016
Excel
ж - 139 м - 64 = 203
по программе 206

1.03.2016 - 31.03.2016
Excel
ж - 132 м - 44 = 176
по программе 262

Чем больше период тем больше разница
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39292956
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже эксель неверно считает.
Код: sql
1.
2.
3.
4.
5.
SET FILTER TO (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(asc(Pol), 198, 230, 134, 166))) .AND.(DATW>={^2016-03-01}.AND.DATW<={^2016-03-31}).AND.SRDOOP>0
count to q for inlist(asc(Pol), 198, 230, 134, 166)
? "ж", q
count to q for !inlist(asc(Pol), 198, 230, 134, 166)
? "м", q


За март:
Код: sql
1.
2.
3.
ж = 171
м = 91
всего 262


просто сделай
Код: sql
1.
brow


попробуй найти хоть одну неправильную запись. Их в марте должно быть 86 по твоим заявлениям.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293013
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
86 человек это за период 01.01.2016 – 15.01.2016
по январю все совпадает, когда ставлю 01.02.2016 – 29.02.2016 то вручную 203, программой 206,
и тем больше период тем разница больше, т.е. начинается с февраля неправильно и по нарастающей
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293028
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55по январю все совпадает, когда ставлю 01.02.2016 – 29.02.2016 то вручную 203, программой 206
У меня почему-то 208 за февраль
Почему ты считаешь что твои руки точнее программы работают?
Выгрузи в эксель то что программа сформировала и сверяй со своим экселем
Код: sql
1.
2.
SET FILTER TO (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(asc(Pol), 198, 230, 134, 166))) .AND.(DATW>={^2016-02-01}.AND.DATW<={^2016-02-29}).AND.SRDOOP>0
copy To pens022016 type xl5 && выгузка в файл pens022016.xls


Найди в этой выгрузке лишнее, то чего не должно быть. Раз программа дает больше, то там должно быть лишнее.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293129
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1
Сравнил период с 01.02.2016 - 29.02.2016
Экспортировал из vfoxpro запросом sql
SELECT * FROM kartwib WHERE ((Datr <= Datp-60*365.25 or (Datr <= Datp - 55 * 365.25 and inlist(Pol, 'ж', 'Ж'))))

И ОТОБРАЛ С ПОМОЩЬЮ ФОРМУЛЫ
=РАЗНДАТ(E2;Q2;"y")&"г."&РАЗНДАТ(E2;Q2;"ym")&"мес."&РАЗНДАТ(E2;Q2;"md")&"дн."
В E2 – ДАТА РОЖДЕНИЯ
В Q2 – СТОИТ ТЕКУЩАЯ ДАТА
и также
Srdoop - убрал нули
Datw - выбрал весь февраль 2016
ПОЛУЧИЛОСЬ М - 64 + Ж - 139 = 203

2
ПРОГРАММА - 206

3
ВЫГРУЖЕННЫЙ ФАЙЛ 208

4
СРАВНИЛ 1 И 3 ВАРИАНТЫ
Эти не вошли в 1вариант
nib=4069 11/17/1928 ж
nib=4085 05/02/1922 ж
nib=4350 04/04/1952 м
nib=4381 07/09/1939 м
nib=500641 03/02/1953 ж


в vfoxpro посчитал кол-во ячеек 21896
Экспортируется вся таблица всего 16384

ВЗЯЛ ВЕСЬ 2016год
В программе 885
В файле 888
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293132
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql запрос тоже дает 888
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293144
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все таки хотелось бы проверить Excel формулой, как можно выгрузить в Excel все 21896строк
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293176
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все проверенно отткрыл просто через excel dbf файл - посчитал 888
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293178
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55как можно выгрузить в Excel все 21896строк
Код: sql
1.
copy To pens type xl5
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293191
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в этом запросе он выгружает не все, точнее 16384

В программе в результате - 885
В программе в выгруженном файле PENS0220 - 888

Скорее всего мне не реально найти эти 3
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293201
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55в этом запросе он выгружает не все, точнее 16384
VFP9 все выгружает, как я понял ты DBF экселем открыл, по сути тоже самое.

dmr55Скорее всего мне не реально найти эти 3
У тебя ID есть? Уникальный идентификатор записи.
Если есть, то сортируешь обе таблицы по возрастанию ID, затем копируешь вторую рядом с первой и пишешь формулу "=A2=F2" где A колонка с ID первой, F - ID второй, дальше просто ищи строку где будет "ЛОЖЬ"
Можешь вместо ID отсортировать по дате рождения. Дальше также.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39293207
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про сравнение все понятно

Когда я запускаю программу и задаю ее период весь 2016 год и тут-же сохраняет в Excel файл - в нем 888 а дальше программа запускается с результатом уже 885
...
Рейтинг: 0 / 0
21 сообщений из 121, страница 5 из 5
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]