powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
25 сообщений из 121, страница 4 из 5
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288042
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пустые даты корректнее отслеживать через Datp - Datr , т.е. так будет без пустых Datr
Код: sql
1.
SELECT *FROM kartwib WHERE (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(Pol, 'ж', 'Ж')))
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288122
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1
Да бесполые по данному запосу есть, хотя они не много, но два выходят бесполых с ненулевым значением (т.е. в столбце Srdoop с ненулевым значением это 1-4цифры, а с нулевым это 0)
SELECT * FROM kartwib WHERE !inlist(Pol, 'ж', 'Ж', 'м', 'М') НО ЭТО ТАК К СВЕДЕНИЮ

2
SELECT * FROM kartwib WHERE !empty(Datr) and (;
(Datr <= Datp - 60 * 365.25 and Pol = 'м') or (Datr <= Datp - 60 * 365.25 and Pol = 'М');
or (Datr <= Datp - 55 * 365.25 and Pol = 'ж') or (Datr <= Datp - 55 * 365.25 and Pol = 'Ж'))

По данным Excel – 7016, пустых дат нет, но в фильтре видно что самые молодые с января-апрель, май – 8августа не показывает.
Этот такой же результат
SELECT * FROM kartwib WHERE !empty(Datr) and (Datr <= Datp - 60 * 365.25 or (Datr <= Datp - 55 * 365.25 and inlist(Pol, 'ж', 'Ж')))

3
DATE – это из примера Student009, по его примеру тестировал

4
SELECT *FROM kartwib WHERE (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(Pol, 'ж', 'Ж')))
Показывает тот же результат что и во 2 пункте (самые молодые с января-апрель, май – 8августа не показывает)
)

5
SELECT *FROM kartwib WHERE (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(Pol, 'ж', 'Ж')))
Попробовал пересохранить dbf файл в dbf2.x сделал sql запрос и открыл снова через Excel кол-во показало 5854(гораздо меньше), но теперь в фильтре Excel показывает месяца из 1961года(янв фев март апр июнь), майских вроде нет, а вот июльские 2женщины увидел
Одна женщина вылезла 1984г это пому что datp 2039(НО ЭТО МЕЛОЧЬ)
НАПОМНЮ ВАМ ЧТО РЕЧЬ ИДЕТ ПРО ЖЕНЩИН 1961ГОДА КОТ НЕ ВЫБИРАЮТСЯ ВСЕ
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288139
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 Показывает женщин по общей базе (из Excel). . . – 1961 4 августа - 3784ж
2 По запросу 3726ж

НА 58 ЖЕНЩИН МЕНЬШЕ

По этому запросу(2)
SELECT *FROM kartwib WHERE (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(Pol, 'ж', 'Ж')))
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288220
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай уже данные, без ФИО, только нужное.
Запусти этот код
Код: sql
1.
2.
sele kartwib 
copy to kartwib_copy fields Datp, Datr, Pol, Datw, Srdoop


и выкладывай сюда kartwib_copy.dbf
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288226
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или мне вышли сюда simepunez@lackmail.ru
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288435
Student009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima Tили мне вышли сюда simepunez@lackmail.ru
Пришлите Диме сала в шоколаде. Хохол уже 4 страницы кала навоял. Простейшую задачу решить не может.
Позорище.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288742
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скинул
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288801
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55Скинул
Попробуй еще раз simepunez@lackmail.ru
ящик одноразовый, возможно не принимает когда закрыт.
И запакуй, возможно есть ограничения по размеру.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288809
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверь
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288833
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получил. Выбирается 7016 записей, есть женщины 55 лет, добавил возраст в запрос
Код: sql
1.
SELECT (datp - datr) / 365.25 as vozr, * FROM kartwib_ WHERE (Datp - Datr >= 60 * 365.25 or (Datp - Datr >= 55 * 365.25 and inlist(Pol, 'ж', 'Ж'))) order by 1


так тот же результат 7016
Код: sql
1.
2.
3.
SELECT * FROM kartwib WHERE !empty(Datr) and (;
(Datr <= Datp - 60 * 365.25 and Pol = 'м') or (Datr <= Datp - 60 * 365.25 and Pol = 'М');
or (Datr <= Datp - 55 * 365.25 and Pol = 'ж') or (Datr <= Datp - 55 * 365.25 and Pol = 'Ж'))


Что именно не так по твоему мнению?
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288848
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сохранить в excel то дата рождения у женщин 1961 года с января-апрель, с мая - август нету
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288856
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
около 40 женщин 1961 с мая-август нету, не проверяя мужиков
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39288860
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55Если сохранить в excel то дата рождения у женщин 1961 года с января-апрель, с мая - август нету
Нет потому что ты считаешь возраст на DATP (как понимаю дата проведения обследования), а последняя DATP 13.05.2016. Будут данные за май - август, будут и пенсионеры май-август 1961 года
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289380
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестировал с 01.01.2016 – 15.01.2016
ТЕСТ ПО ВСЕЙ БАЗЕ ПРАВИЛЬНО

ПО ВСЕ БАЗЕ БЕЗ ВЫБОРОК
Сохранил в Excel
Datw 01.01.2016 – 15.01.2016
Srdoop 1-4

Добавляем новую ячейку и вставляем =РАЗНДАТ(E2;Q2;"y")&"г."&РАЗНДАТ(E2;Q2;"ym")&"мес."&РАЗНДАТ(E2;Q2;"md")&"дн."
В E2 – ДАТА РОЖДЕНИЯ
В Q2 – СТОИТ ТЕКУЩАЯ ДАТА

Сначала ж 55-старше 53человека
Потом м 60-старше 33человека
Общее кол-во 86человек



ТЕСТ ПО SQL ЗАПРОСУ ПРАВИЛЬНО

SELECT * FROM kartwib WHERE !empty(Datr) and (;
(Datr <= Datp - 60 * 365.25 and Pol = 'м') or (Datr <= Datp - 60 * 365.25 and Pol = 'М');
or (Datr <= Datp - 55 * 365.25 and Pol = 'ж') or (Datr <= Datp - 55 * 365.25 and Pol = 'Ж'))
Srdoop 1-4
Общее кол-во 86человек

ТЕСТ ПО SQL ЗАПРОСУ ПРАВИЛЬНО

SELECT * FROM kartwib WHERE ((Datr <= Datp-60*365.25 or (Datr <= Datp - 55 * 365.25 and inlist(Pol, 'ж', 'Ж'))))
Srdoop 1-4
Общее кол-во 86человек


ВСТАВИЛ В КОД
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)
Итого – 76 Куда то потерялись 10
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289385
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55Общее кол-во 86человек


ВСТАВИЛ В КОД
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)
Итого – 76 Куда то потерялись 10
у меня получается 86
Код: 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


т.е. проблема не в SET FILTER а где-то в другом месте. Смотри код.

PS поправь проверку возраста чтобы пустые Datr не обрабатывались.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289389
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если тут 19426842 исходный код, то у тебя вот еще проверка
dmr55
Код: sql
1.
2.
3.
      IF EFFEKT=6
         UM = UM+1
      ENDIF


Посмотри в 86-ти сколько имеют EFFEKT=6
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289424
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставляю в код
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

нули какую либо дату не ставил

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

Не обязательно в PRG писать, можно просто по очереди эти строки вставлять в окно command.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289436
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне нужно именно в prg файл
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289437
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты с кракозябрами разобрался? Я проверил, из-за них потеряется ровно 10 женщин из 86-ти
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289446
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как проверял?

Кракозябры тогда, когда я делаю sql запрос в visual foxpro 6 - и кидаю(заменяю) karwib, запускал код с brow и у меня все русские в крякозябрах и количество показывало 86

А вот в коде
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)
Выбирая дату с 01.01.2016-15.01.2016 показывает 76, и крякозябр нету
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289476
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmr55Как проверял?
Убрал or (Datr <= Datp - 55 * 365.25 and inlist(Pol, 'ж', 'Ж')) - стало 76 записей
Код: sql
1.
SET FILTER TO (Datp - Datr >= 60 * 365.25) .AND.(DATW>={^2016-01-01}.AND.DATW<={^2016-01-15}).AND.SRDOOP>0


dmr55Кракозябры тогда, когда я делаю sql запрос в visual foxpro 6 - и кидаю(заменяю) karwib, запускал код с brow и у меня все русские в крякозябрах и количество показывало 86

Давай по порядку. Как понимаю сам код у тебя должен работать в Foxpro 2.6. Так?

Открывай Foxpro 2.6 и смотри там на русские буквы:
1. Данные. Открываешь таблицу karwib и смотришь (brow).
2. Код. Открываешь свой PRG и смотри как написано 'ж', 'Ж'
и удали одноименный FXP - это скомпилированный PRG, если ты двумя фоксами лазил, то возможно 6-м скомпилировал.
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289481
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да код работает в foxpro2.6
1 Открыл kartwib через foxpro2.6 (FOXPROLем) USE kartwib - brow - русские буквы есть
2 ж и Ж нормально написано
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)

.FXP удалил
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289516
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что в итоге? 76 или 86?
...
Рейтинг: 0 / 0
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
    #39289519
dmr55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
76
...
Рейтинг: 0 / 0
25 сообщений из 121, страница 4 из 5
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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