|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
inlist() не заметил выше? 19496193 лучше так напиши Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 10:33 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
результат по выборке такой же но почему-то твой весит на 14 килобайт больше моего файла ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 10:49 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Попробовал Задал дату с 01.01.2016-01.01.2016 SQL запрос SELECT * FROM kartwib WHERE (Datr <= Datp - 60 * 365.25 or (Datr <= Datp - 55 * 365.25 and inlist(Pol, 'ж', 'Ж'))) Сохранил в dbf и заменил, получились вылезли даты рождения 06.11.1956 ж 952 26.11.1932 ж 251 25.11.1953 м 14525 12.11.1938 ж 14602 В коде программы 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) 26.11.1932 ж 251 25.11.1953 м 14525 12.11.1938 ж 14602 Получается через код не попадает 06.11.1956 ж 952 (цифры после м и ж этот для простоты поиска идентификаторы) Ну и если поставить период больше например весь январь, то по коду - 165, а по sql - 184 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 06:59 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Когда замененный сохраненный выбранный sql запрос dbf в программу и тем самым код 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) то также показывает 184 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 07:25 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Попробовал открыл через visual foxpro 6 и экспортировал ни делая ни каких запросов (пересохранил) в dbf2.x и кинул(заменил) в программе вышло правильное кол-во но вместо русских букв крякозябры(где ФИО) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 07:32 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
dmr55Получается через код не попадает 06.11.1956 ж 952 (цифры после м и ж этот для простоты поиска идентификаторы) Ну и если поставить период больше например весь январь, то по коду - 165, а по sql - 184 Не смущает что условия выборки разные? у селекта нет .AND.DATW>=MINDAT.AND.DATW<=MAXDAT).AND.SRDOOP>0) смотри для этой записи что в полях DATW и SRDOOP и пиши сюда содержимое всех используемых полей если сам разобраться не можешь. Даты смотри с 4 цифрами года. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 08:21 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
dmr55вместо русских букв крякозябры(где ФИО) Я тебе уже писал как задать 866 кодовую страницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 08:22 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Ну и что, что у Селекта нет .AND.DATW>=MINDAT.AND.DATW<=MAXDAT).AND.SRDOOP>0) Когда я беру файл с полной базой, никаких запросов не делаю, а просто экспортирую его в dbf2.x и кидаю(заменяю) в программе конечно выходят крякозябры(хрен с ними этот так для проверки) но и выходит правильное кол-во ведь в коде та есть .AND.DATW>=MINDAT.AND.DATW<=MAXDAT).AND.SRDOOP>0) Проверил 06.11.1956 ж 952 DATW - 01.01.2016 правильно должна выходить SRDOOP - 1 правильно должна выходить ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 09:56 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
MINDAT и MAXDAT это переменные или поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 10:06 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Переменные PUBLIC MINDAT, MAXDAT, MINOTD ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 10:09 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Похоже запросу 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) что-то мешает из "родной" dbf таблицы выбирать все что надо, ведь когда пересохраняешь ее в dbf2.x и кидаешь(заменяешь) все что надо показывает с (крякозябрами) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 10:23 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
У тебя скобки нехватает Код: sql 1.
Вот тест, выбирается в обоих случаях Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Т.к. всех данных я от тебя добиться так и не смог, то неизвестное дописал сам. Поправь даты на свои и проверь что в обоих случаях выбирается. Если результаты одинаковые, то проблема где-то в другом твоем коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 10:24 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
dmr55Похоже запросу 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) что-то мешает из "родной" dbf таблицы выбирать все что надо, ведь когда пересохраняешь ее в dbf2.x и кидаешь(заменяешь) все что надо показывает с (крякозябрами) крякозябры мешают - в кракозябрах 'ж' превращается в кракозябру и не выбирается, т.е. ты потерял всех женщин от 55 до 60. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 10:26 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Скобку добавил - рузультат тот же Сделал выборку за январь В сохраненном(замененном) dbf женщин находит от 55-60, ведь здесь крякозябы и всех показывает В родном dbf похоже не находит женщин от 55-60, все читаемо крякозябрь нет и данные не все Запрос с "родной базой" 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) в коде не может все показать А в сохраненном(экспортированном) все показывает ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 11:12 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Похоже sql запрос в коде foxpro2.6 не может проработать целиком выборку данного формата(родного) dbf файла ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 11:32 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
dmr55Запрос с "родной базой" ... в коде не может все показать А в сохраненном(экспортированном) все показывает Нет тут телепатов. Как я должен догадаться откуда взялся второй источник данных? Зачем вообще этот экспорт из VFP6 в FPD2? Зачем две базы и где гарантия что обе содержат одинаковую инфу? Почему нельзя все проверки выполнять в FPD? PS Я уже устал из тебя вытягивать инфу по крупицам. Как я вижу, ты не понимая сути происходящего, просто перебираешь варианты какие в голову придут, авось пазл сойдется и все станет хорошо. С таким подходом можно долго перебирать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 11:50 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
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) в данном запросе не нахожу женщин от 55-60, они туда не попадают какую нужно инфу ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 13:04 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
dmr55Помогите осуществить Выборку из БД мужчин от 60 и старше, женщин от 55 и старше Часть кода, где DATW - дата выписки, DATP-дата поступления, DATR - дата рождения Dima T - это Хохол, натуральный усpаинский Какел. Не слушай какелов! Забудь про мистическое число 365.25. Вот простое решение твоей задачи: SET COLLATE TO 'RUSSIAN' && Это надо для 'м' или 'ж' если вдруг нечайно внесут в базу большими буквами 'М' или 'Ж' SELECT * FROM kartwib WHERE Pol='м' AND YEAR(DATE())-YEAR(Datr)>=60 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE()) INTO CURSOR деды SELECT * FROM kartwib WHERE Pol='ж' AND YEAR(DATE())-YEAR(Datr)>=55 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE()) INTO CURSOR бабки Всё? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2016, 18:54 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
*Небольшая поправочка в предыдущем коде, сути не меняет. SET COLLATE TO 'RUSSIAN' && Это надо для 'м' или 'ж' если вдруг нечайно внесут в базу большими буквами 'М' или 'Ж' SELECT * FROM kartwib WHERE Pol='м' AND (YEAR(DATE())-YEAR(Datr)>60 OR YEAR(DATE())-YEAR(Datr)=60 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) INTO CURSOR деды SELECT * FROM kartwib WHERE Pol='ж' AND (YEAR(DATE())-YEAR(Datr)>55 OR YEAR(DATE())-YEAR(Datr)=55 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) INTO CURSOR бабки ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2016, 19:05 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
в одну строчку можно записать этот запрос через set filter ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2016, 19:20 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
dmr55в одну строчку можно записать этот запрос через set filter SET COLLATE TO 'RUSSIAN' SET EXCLUSIVE OFF SELECT 0 USE kartwib ALIAS kartwib_m && деды SET FILTER TO Pol='м' AND (YEAR(DATE())-YEAR(Datr)>60 OR YEAR(DATE())-YEAR(Datr)=60 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) SELECT 0 USE kartwib ALIAS kartwib_w && бабки SET FILTER TO Pol='ж' AND (YEAR(DATE())-YEAR(Datr)>55 OR YEAR(DATE())-YEAR(Datr)=55 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2016, 19:52 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Student009SET COLLATE TO 'RUSSIAN' Какел, или как тебя там, тему топика прочитай "...Foxpro 2.6" и не запутывай человека, он и так запутался по самые нехочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2016, 20:19 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
SET EXCLUSIVE OFF SELECT 0 USE kartwib ALIAS kartwib_m && деды SET FILTER TO LOWER(Pol)='м' AND (YEAR(DATE())-YEAR(Datr)>60 OR YEAR(DATE())-YEAR(Datr)=60 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) SELECT 0 USE kartwib ALIAS kartwib_w && бабки SET FILTER TO LOWER(Pol)='ж' AND (YEAR(DATE())-YEAR(Datr)>55 OR YEAR(DATE())-YEAR(Datr)=55 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) Всем поxеp на каклосвиней и их высеры. Dima T известный хохол, потому не смог решить простейшую задачу, он только выё6ываться может. Dima T, валил бы ты отсюда на хохляцкий сайт? Админы, забаньте наконец этого бандеровского хохла, он уже тут всем надоел. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2016, 21:41 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
ТЕСТ СРЕДСТВАМИ VISUAL FOX PRO 6 SQL и EXCEL 2010 1 SELECT * FROM kartwib WHERE ((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 = 'Ж')) 7397 записей, включая без даты рождения 01-01-2016 - 31-01-2016 184 01-01-2016 - 31-03-2016 700 2 SELECT * FROM kartwib WHERE (Datr <= Datp - 60 * 365.25 or (Datr <= Datp - 55 * 365.25 and inlist(Pol, 'ж', 'Ж'))) 7493 записей, включая без даты рождения 01-01-2016 - 31-01-2016 184 01-01-2016 - 31-03-2016 700 3 SELECT * FROM kartwib WHERE Pol='м' AND (YEAR(DATE())-YEAR(Datr)>60 OR YEAR(DATE())-YEAR(Datr)=60 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) OR Pol='М' AND (YEAR(DATE())-YEAR(Datr)>60 OR YEAR(DATE())-YEAR(Datr)=60 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) OR (Pol)='ж' AND (YEAR(DATE())-YEAR(Datr)>55 OR YEAR(DATE())-YEAR(Datr)=55 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) OR (Pol)='Ж' AND (YEAR(DATE())-YEAR(Datr)>55 OR YEAR(DATE())-YEAR(Datr)=55 AND MONTH(Datr)>=MONTH(DATE()) AND DAY(Datr)>=DAY(DATE())) 7411 записей, включая без даты рождения 01-01-2016 - 31-01-2016 184 01-01-2016 - 31-03-2016 694 Решил сравнить 2 и 3 результат, какие все таки данные не вошли в 3 вариант средствами Excel 2010 1 Во второй вариант вошли данные исходя из Excel это самые младшие только рожденные с Января 1961 – Апрель 1961, с мая по декабрь данных нет (ну и все 1960 года и старше) 2 В третий вариант вошли данные из Excel это самые младшие только рожденные с Августа – Декабрь 1961года (ну и все 1960года и старше) Из Excel вижу что самые младшие начинаются с 8.08.1961 3 Ну и 1 и 2 варианты дают аналогичную картину (самые младшие только рожденные с Января 1961 – Апрель 1961) Получается 2 вариант более короткий, но у него выборка самые младшие с с Января 1961 – Апрель 1961, куда то потерялись с мая – 8 августа(т.к. сейчас 8 августа) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 07:05 |
|
Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6
|
|||
---|---|---|---|
#18+
Варианты 1 и 2 должны одинаковый результат давать, разница может быть только из-за безполых и без даты рождения. Посмотри есть ли бесполые записи, т.е. Код: sql 1.
Если есть то надо исправлять Проверь такие запросы (с пропуском пустых Datr) Код: sql 1. 2. 3. 4. 5.
dmr55Получается 2 вариант более короткий, но у него выборка самые младшие с с Января 1961 – Апрель 1961, куда то потерялись с мая – 8 августа(т.к. сейчас 8 августа) Чем отличается Datp от DATE() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 07:35 |
|
|
start [/forum/topic.php?fid=41&msg=39286990&tid=1582071]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 184ms |
0 / 0 |