|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Здравствуйте всем! Я пишу следующий запрос: SELECT personan2.nvrach,personan2.otdel,personan2.uzi, count(*) as nCount; FROM personan2,otbor,person2; WHERE personan2.datap >= (nachalo); AND personan2.datap =< (konec); and person2.id = personan2.idchel; and otbor.names = personan2.nvrach; group by personan2.uzivrach,personan2.uzi; order by personan2.uzivrach,personan2.uzi; iNTO TABLE uzi_otd_vib.dbf в таблице otbor - это у меня курсор, в котором я отбираю фамилии из большого списка по которым я создаю отчет. и мне надо скомпоновать по фамилиям, каждый что и сколько сделал. Вот вроде все и выбирается, но есть странная вещь: если я беру две фамилии: Алексеев А.А. и Алексеева Н.И. то почему то считает не верно. У них одинаковый есть параметр: допустим дом. Дак он не пишет, что дом у каждой фамилии по одному, а пишет что у Алексеевой - 2 а тому вообще ничего не пишет. Зато если их вместе не формировать -то считает верно. Что интересно тут за накладка не подскажите пожалуйста? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 12:36 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
dima_18Здравствуйте всем! Я пишу следующий запрос: SELECT personan2.nvrach,personan2.otdel,personan2.uzi, count(*) as nCount; FROM personan2,otbor,person2; WHERE personan2.datap >= (nachalo); AND personan2.datap =< (konec); and person2.id = personan2.idchel; and otbor.names = personan2.nvrach; group by personan2.uzivrach,personan2.uzi; order by personan2.uzivrach,personan2.uzi; iNTO TABLE uzi_otd_vib.dbf в таблице otbor - это у меня курсор, в котором я отбираю фамилии из большого списка по которым я создаю отчет. и мне надо скомпоновать по фамилиям, каждый что и сколько сделал. Вот вроде все и выбирается, но есть странная вещь: если я беру две фамилии: Алексеев А.А. и Алексеева Н.И. то почему то считает не верно. У них одинаковый есть параметр: допустим дом. Дак он не пишет, что дом у каждой фамилии по одному, а пишет что у Алексеевой - 2 а тому вообще ничего не пишет. Зато если их вместе не формировать -то считает верно. Что интересно тут за накладка не подскажите пожалуйста? Заранее спасибо. Рекомендация: Используйте строгое сравнение ( == ) вместо "простого" (=) при сравнении строк... Узнаете много интересного... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 12:40 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Спасибо за ответ, Станислав С...кий! К сожалению - опять ничего не получилось! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 12:43 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Самое главное даже такой прикол: вот запрос: SELECT personan2.uzivrach,personan2.otdel,personan2.uzi, count(*) as nCount; FROM personan2,person2; WHERE personan2.datap >= (nachalo); AND personan2.datap =< (konec); and person2.id = personan2.idchel; group by personan2.uzivrach,personan2.uzi; order by personan2.uzivrach,personan2.uzi; iNTO TABLE uzi_otd_vr.dbf он отрабатывает нормально. Что я добавил: and otbor.names = personan2.nvrach; т.е. формирую отчет по выбранным фамилиям, которые отбираю в курсор - и тут такой глюк. Не понимаю и сильно расстраиваюсь, пока заметил прикол вот с этими двумя похожими фамилиями если по отдельности их - то каждая фамилия считается нормально. Или взять хотя бы одну фамилию в паре с другими то тоже нормально. Подскажите пожалуйста в чем дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 12:48 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
dima_18 Что я добавил: and otbor.names = personan2.nvrach; т.е. формирую отчет по выбранным фамилиям, которые отбираю в курсор - и тут такой глюк. Не понимаю и сильно расстраиваюсь, пока заметил прикол вот с этими двумя похожими фамилиями если по отдельности их - то каждая фамилия считается нормально. Или взять хотя бы одну фамилию в паре с другими то тоже нормально. Подскажите пожалуйста в чем дело? Вы ставили здесь dima_18 Что я добавил: and otbor.names = personan2.nvrach; вместо = знак == ? Имхо, дело здесь в сравнении строк: Visual FoxPro 9.0 Language Reference SET ANSI Command Specifies whether to pad a shorter string with spaces when making a SQL string comparison or binary expression with zero (0) bytes when making a binary expression comparison in SQL commands using the equal sign operator (=). Note: In the Visual FoxPro OLE DB Provider, you cannot query the value of ANSI using the SET command though SET ANSI is supported. SET ANSI ON | OFF Parameters ON Pads the shorter string or binary expression with spaces or zero (0) bytes needed, respectively, to make it equal to the length of the longer string or expression. When SET ANSI is set to ON, the two strings or expressions are compared character for character for their entire lengths. OFF Specifies that the shorter string not be padded with spaces or binary expression not be padded with zero (0) bytes. (Default) When SET ANSI is set to OFF, the two strings are compared character for character until the end of the shorter string is reached. Remarks SET ANSI has no effect on the double equal sign (==) operator. When you use the == operator, the shorter string or binary expression is always padded with spaces or zero (0) bytes, respectively, for the comparison. For more information, see Relational Operators. SET ANSI is scoped to the current data session. SET ANSI and the Query Designer Visual FoxPro builds a SELECT - SQL command in the Query Designer when you create a query. When creating Join and Filter conditions, if you choose the Equal or Exactly Like options, the = or == operator is included in the generated SELECT. The SET ANSI setting can affect the results of queries you create and perform in the Query Designer. String Order In SQL commands, the left-to-right order of the two strings in a comparison is irrelevant — switching a string from one side of the = or == operator to the other doesn't affect the result of the comparison. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 13:01 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Большое спасибо, Станислав С...кий ! И снова не удача И снова ничего не получилось - я уж и установку set ansi on - включил насильно еще раз. И у меня стоит == вместо =. Все равно не то. Если вы посмотрите запрос то у них все поля одинаковые, кроме personan2.idchel. Но как я думаю все равно как -то должно разойтись - непонимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 13:11 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
dima_18Большое спасибо, Станислав С...кий ! И снова не удача И снова ничего не получилось - я уж и установку set ansi on - включил насильно еще раз. И у меня стоит == вместо =. Все равно не то. Если вы посмотрите запрос то у них все поля одинаковые, кроме personan2.idchel. Но как я думаю все равно как -то должно разойтись - непонимаю. Выложите пример данных, которые участвуют у Вас в запросе... Хотя бы для "проблемных" людей... попробуем разобраться... И еще, ФИО у Вас в одном поле или это несколько полей? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 13:20 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Огромное спасибо Станислав С...кий! Быть может у Вас есть аська - и более договоримся что выслать. Мне бы это очень понравилось -может я какую глупость делаю. Жду ответа от Вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 13:29 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Огромное спасибо Станислав С...кий! Быть может у Вас есть аська - и более договоримся что выслать. Мне бы это очень понравилось -может я какую глупость делаю. Жду ответа от Вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 13:41 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
dima_18Огромное спасибо Станислав С...кий! Быть может у Вас есть аська - и более договоримся что выслать. Мне бы это очень понравилось -может я какую глупость делаю. Жду ответа от Вас. Нет, "Аськи" нет :-( А данные (до 100 Kb) можно приложить, например в виде архивного файла, к сообщению... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 13:51 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Станислав С...кий А данные (до 100 Kb) можно приложить, например в виде архивного файла, к сообщению... Как правило, для понимания проблемы больше и не надо... Но если Вы считаете, что, для понимания проблемы, объем данных должен быть бОльшим, то мое "мыло": станислав1971 на мэйле ру... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 13:55 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Вообщем я подготовил для отправки и сделал в виде таблицы, а не курсора таблицу otbor. Я думаю все есть данные в запросе первые два параметра:WHERE personan2.datap >= (nachalo); AND personan2.datap =< (konec); nachalo и konec можно убрать - т.к. это я ввожу сам. А так тут все данные есть - посмотрите пожалуйста, Станислав С...кий и другие - жду ответа как весточки. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 14:00 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Извиняюсь еще раз Станислав С...кий! Ну как все я прикрепил? Хватает этих данных? Что -нибудь у Вас выходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 14:33 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
dima_18Вообщем я подготовил для отправки и сделал в виде таблицы, а не курсора таблицу otbor. Я думаю все есть данные в запросе первые два параметра:WHERE personan2.datap >= (nachalo); AND personan2.datap =< (konec); nachalo и konec можно убрать - т.к. это я ввожу сам. А так тут все данные есть - посмотрите пожалуйста, Станислав С...кий и другие - жду ответа как весточки. Хорошо бы еще сообщить версию Фокса, так как от этого зависят особенности SQL-движка... Например, в 9-м Фоксе в GROUP BY должны участвовать все поля, кроме вычисляемого, а в 6-м Фоксе такого ограничения нет. И запросы, проходившие "на ура" в 6-м Фоксе приходится оптимизировать под 9-ю версию :-(... И задание, пожалйуста, поконкретнее. Покажите ( в виде таблицы), что должно получиться... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 14:41 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
dima_18Извиняюсь еще раз Станислав С...кий! Ну как все я прикрепил? Хватает этих данных? Что -нибудь у Вас выходит? Ну, если немного "поколодовать", то все решаемо... А так, не хватало файла personan.fpt :-) А выходить - выходит... Пишу на 9-м Фоксе... И Вашей проблемы не наблюдаю :-) Только надо задание поконкретнее... А реализацию - подправим... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 14:45 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Спсасибо большое, Станислав С...кий ! Пишу я на 6 фокспро. Что касается - данный проблемы - то я совсем не понимаю - а почему у ме ня то так выходит. Может я не подключаю какой нибудь: set... например : set ansi.... Напишите, пожалуйста - как Вы проверяли это запрос. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 15:15 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
Вот прикрепляю, что я хочу! видеть - как видите у Алексеева пропала еще одна запись а вместо этого она у Алексеевой ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 15:21 |
|
Помогите пожалуйста с запросом!
|
|||
---|---|---|---|
#18+
dima_18Спсасибо большое, Станислав С...кий ! Пишу я на 6 фокспро. Что касается - данный проблемы - то я совсем не понимаю - а почему у ме ня то так выходит. Может я не подключаю какой нибудь: set... например : set ansi.... Напишите, пожалуйста - как Вы проверяли это запрос. Спасибо Как я уже говорил, в 9-м Фоксе надо писать все поля, кроме вычисляемого, в GROUP BY. Вот мой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
получаем результат: Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2008, 15:30 |
|
|
start [/forum/search_topic.php?author=VIEWPORT&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 527ms |
total: | 686ms |
0 / 0 |