|
Помогите с запросом
|
|||
---|---|---|---|
#18+
У меня такой вопрос. Имеется основные таблицы: gruz, region, goroda, transport, loding и одна временная(создается при выполнении запроса и заполняется всеми полями основных таблиц) cBuilding. Проблема в том что при выполнении запроса она создается, но остается пустой. Подскажите как сделать чтобы она заполнялась? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2010, 19:42 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Вероятно не выполнены условия, удовлетворяющие запросу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2010, 20:23 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
как так, я точно знаю, что у меня есть в таблице регион: Новосибирская область и город: Новосибирск, делаю поиск именно по этому региону и городу и у меня результат нулевой и во временной таблице пусто. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2010, 20:56 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
curys, структуру таблиц и код процедуры в студию ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2010, 21:13 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Может в коде у меня какие-нибудь косяки, посмотрите пожалуйста! Вот код запроса: *- Кнопка Поиск Wait 'Ждите! Ваш запрос обрабатывает сервер.' WINDOW NOWAIT IF Selectidotkydare=0 * Значение символьной переменной - пустая строка * К оператору SELECT ничего добавлено не будет Sidotkydare=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sidotkydare * Обратите внимание на знак & (амперсанд) Sidotkydare=[and gruz.idotkydare=Selectidotkydare] ENDIF IF Selectidotkydago=0 * Значение символьной переменной - пустая строка * К оператору SELECT ничего добавлено не будет Sidotkydago=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sidotkydago * Обратите внимание на знак & (амперсанд) Sidotkydago=[and gruz.idotkydago=Selectidotkydago] ENDIF IF Selectidkydare=0 * Значение символьной переменной - пустая строка * К оператору SELECT ничего добавлено не будет Sidkydare=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sidkydare * Обратите внимание на знак & (амперсанд) Sidkydare=[and gruz.idkydare=Selectidkydare] ENDIF IF Selectidkydago=0 * Значение символьной переменной - пустая строка * К оператору SELECT ничего добавлено не будет Sidkydago=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sidkydago * Обратите внимание на знак & (амперсанд) Sidkydago=[and gruz.idkydago=Selectidkydago] ENDIF IF Selectidtran=0 Sidtran=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sidtran Sidtran=[and gruz.idtran=Selectidtran] ENDIF IF Selectidload=0 Sidload=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sidload Sidload=[and gruz.idload=Selectidload] ENDIF * Дата погрузки * Уберем концевые пробелы Selectgotovs=ALLTRIM(Selectgotovs) IF LEN(Selectgotovs)=0 Sgotovs=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sgotovs Sgotovs=[and gruz.gotovs==Selectgotovs] * Знак == означает: в точности равно. * Если поставить просто знак равенства * Будут найдены все груз, дата погрузки которых * начинаются с введенных символов. ENDIF * Дата погрузки * Уберем концевые пробелы Selectgotovdo=ALLTRIM(Selectgotovdo) IF LEN(Selectgotovdo)=0 Sgotovdo=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sgotovdo Sgotovdo=[and gruz.gotovdo==Selectgotovdo] * Знак == означает: в точности равно. * Если поставить просто знак равенства * Будут найдены все груз, дата погрузки которых * начинаются с введенных символов. ENDIF * Масса груза * Уберем концевые пробелы Selectmassa=ALLTRIM(Selectmassa) IF LEN(Selectmassa)=0 Smassa=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Smassa Smassa=[and gruz.massa==Selectmassa] * Знак == означает: в точности равно. * Если поставить просто знак равенства * Будут найдены все груз, масса которых * начинаются с введенных символов. ENDIF * Объем груза * Уберем концевые пробелы Selectobiem=ALLTRIM(Selectobiem) IF LEN(Selectobiem)=0 Sobiem=[] ELSE * Строка в квадратных скобках будет добавлена * к оператору SELECT как значение &Sobiem Sobiem=[and gruz.obiem==Selectobiem] * Знак == означает: в точности равно. * Если поставить просто знак равенства * Будут найдены все груз, дата погрузки которых * начинаются с введенных символов. ENDIF * Выполнение запроса SELECT gruz.idotkydare,region.region,; gruz.idotkydago,goroda.gorod,; gruz.idkydare,region.region,; gruz.idkydago,goroda.gorod,; gruz.gruznaumen,; gruz.massa,; gruz.obiem,; gruz.idtran,transport.transport,; gruz.idload,loading.load,; gruz.ctavka,; gruz.gotovs,; gruz.gotovdo,; gruz.compani,; gruz.kontakt,; gruz.telefon,; gruz.icq,; gruz.mail; FROM gruz,region,goroda,transport,loading; INTO TABLE C:\WINNT\TEMP\cBuilding; WHERE gruz.idotkydare=region.idreg; AND gruz.idotkydago=goroda.idgorod; AND gruz.idkydare=region.idreg; AND gruz.idkydago=goroda.idgorod; AND gruz.gruznaumen=gruz.gruznaumen; AND gruz.massa=gruz.massa; AND gruz.obiem=gruz.obiem; AND gruz.idtran=transport.idtran; AND gruz.idload=loading.idload; AND gruz.ctavka=gruz.ctavka; AND gruz.gotovs=gruz.gotovs; AND gruz.gotovdo=gruz.gotovdo; &Sidotkydare &Sidotkydago &Sidkydare &Sidkydago &Smassa &Sobiem &Sidtran &Sidload &Sgotovs &Sgotovdo SELECT cBuilding * Во временной выборке находится информация по грузам, * отвечающим условиям составленного запроса. * Запись содержит полный набор полей из всех таблиц: * * Полученную выборку можно конвертировать в Excel, Access и др. * Без дополнительной обработки Wait 'Готово!' WINDOW NOWAIT IF RECCOUNT()=0 =MESSAGEBOX('Груза, отвечающих условиям вашего запроса, '+; 'в базе нет. Повторите запрос, изменив требования.'; ,48,'Внимание') RETURN ENDIF * Временная таблица-выборка хранится в файлах * cBuilding.dbf и cBuilding.fpt в папке C:\WINNT\TEMP * Запуск формы для работы с грузами DO FORM rezultgruz ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2010, 21:15 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Код: plaintext
Вы уверены, что два РАЗНЫХ поля таблицы gruz содержат одно и то же значение? А зачем вот эти условия совсем не понимаю Код: plaintext 1. 2. 3. 4. 5. 6.
Предполагается, что поле может быть не равно самому себе? Правда, подобные условия исключают значения NULL, если они есть, разумеется. Но на NULL можно было бы проверить и прямым сравнением Код: plaintext
или Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2010, 23:29 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Мне кажется, или точно такая же тема была тут совсем недавно? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2010, 04:57 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Посмотрите проект, может вы разберетесь почему во временную таблицу не добовляются результаты поиска? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2010, 14:12 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
помогите пожалалуйста, я уже не знаю что делать, даже мой преподаватель не знает в чем моя ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 12:04 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
curysпомогите пожалалуйста, я уже не знаю что делать, даже мой преподаватель не знает в чем моя ошибка. преподавателю жирный минус я от своего просто под стол падал и катался в конвульсиях: ПК - это сист.блок, монитор и клавиатура. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 12:18 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
curys, разбираться в нагромождении вашего кода в запросе нет никакого желания. Хотя бы сделали все с использованием Join ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 12:29 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
прошелмимоcurysпомогите пожалалуйста, я уже не знаю что делать, даже мой преподаватель не знает в чем моя ошибка. преподавателю жирный минус я от своего просто под стол падал и катался в конвульсиях: ПК - это сист.блок, монитор и клавиатура.Он был труЪ-линуксойд? Мышку не признавал категорически? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 12:35 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
tanglirпрошелмимоcurysпомогите пожалалуйста, я уже не знаю что делать, даже мой преподаватель не знает в чем моя ошибка. преподавателю жирный минус я от своего просто под стол падал и катался в конвульсиях: ПК - это сист.блок, монитор и клавиатура.Он был труЪ-линуксойд? Мышку не признавал категорически? А я своего вчера чуть не пребил на месте, стоит и смотрит на меня как баран на новые ворота. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 12:57 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Значит, придется самому делать. Возьмите хотя бы конструктор запросов, в нем соедините линиями таблицы и введите условия отбора. Получившийся код перенесите в программу, изменив под свои условия отбора. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 13:16 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
curystanglirпрошелмимоcurysпомогите пожалалуйста, я уже не знаю что делать, даже мой преподаватель не знает в чем моя ошибка. преподавателю жирный минус я от своего просто под стол падал и катался в конвульсиях: ПК - это сист.блок, монитор и клавиатура.Он был труЪ-линуксойд? Мышку не признавал категорически? А я своего вчера чуть не пребил на месте, стоит и смотрит на меня как баран на новые ворота. ты ихде? я - в Мск завтра буду в Курске, потом - в Белгороде. поймаешь - попьем пива, я на пальцах покажу все. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 13:30 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
curysпомогите пожалалуйста, я уже не знаю что делать, даже мой преподаватель не знает в чем моя ошибка. Если на рассматривать стиль написания, то у тебя несколько ошибок. (1.) Коды "откуда" и "куда" не могут одновременно ссылаться на разные записи одной и той же таблицы. Их надо "развести" по разным таблицам. Для этой цели одну и ту же таблицу открывают дважды. В двух рабочих областях. Получая как бы копию таблицы. В результате, запрос получится таким Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Т.е. две таблицы region и goroda теперь участвуют в запросе в двух ипостасях: как регион и город "откуда", и еще одна копия - как регион и город "куда" Ну, тут я еще выбросил бессмысленные условия когда поле ссылается само на себя. (2.) Условие объединения таблиц описанным способом предполагает, что для каждой записи таблицы grus существует соответствующая запись таблиц-справочников. Если хотя бы в одном справочнике нет соответствующего кода записи, то запись таблицы grus в выборку не попадет. В данном случае, проблема с кодами записей таблицы goroda. В ней нет записей с кодом 1 и 2. Как следствие, результат выборки по присланным тестовым данным всегда пустой. Добавьте в таблицу goroda записи с кодом 1 и 2 или измените в таблице grus значения полей idotkydago и idkydago таким образом, чтобы в них не было кодов 1 и 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 17:00 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
ВладимирМcurysпомогите пожалалуйста, я уже не знаю что делать, даже мой преподаватель не знает в чем моя ошибка. Если на рассматривать стиль написания, то у тебя несколько ошибок. (1.) Коды "откуда" и "куда" не могут одновременно ссылаться на разные записи одной и той же таблицы. Их надо "развести" по разным таблицам. Для этой цели одну и ту же таблицу открывают дважды. В двух рабочих областях. Получая как бы копию таблицы. В результате, запрос получится таким Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Т.е. две таблицы region и goroda теперь участвуют в запросе в двух ипостасях: как регион и город "откуда", и еще одна копия - как регион и город "куда" Ну, тут я еще выбросил бессмысленные условия когда поле ссылается само на себя. (2.) Условие объединения таблиц описанным способом предполагает, что для каждой записи таблицы grus существует соответствующая запись таблиц-справочников. Если хотя бы в одном справочнике нет соответствующего кода записи, то запись таблицы grus в выборку не попадет. В данном случае, проблема с кодами записей таблицы goroda. В ней нет записей с кодом 1 и 2. Как следствие, результат выборки по присланным тестовым данным всегда пустой. Добавьте в таблицу goroda записи с кодом 1 и 2 или измените в таблице grus значения полей idotkydago и idkydago таким образом, чтобы в них не было кодов 1 и 2 Спасибо большое!:) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2010, 19:36 |
|
|
start [/forum/topic.php?fid=41&fpage=99&tid=1585338]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
128ms |
get tp. blocked users: |
2ms |
others: | 342ms |
total: | 550ms |
0 / 0 |