|
Запрос
|
|||
---|---|---|---|
#18+
Добрый день Всем!!! помогите разобраться в чем проблема в данном запросе Код: 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. 34. 35. 36. 37. 38. 39.
перевожу запрос с MS SQL на VFP7 но в фоксе не сильно силен ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 15:15 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос???, 1) Первое, что бросается в глаза - отсутствие ";" (символ продолжения выражения на следующую строку) в запросах в конце каждой строки то есть должно быть: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
2) Пустые строки в "теле" запроса не допускаются 3) Ну и еще одна "трабла": при использовании ";" пробелы не добавляются. То есть выражение (нет пробела между select и ";"): Код: plaintext 1. 2.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 15:35 |
|
Запрос
|
|||
---|---|---|---|
#18+
Станислав С...кий, все равно ругается на синтаксическую ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 15:46 |
|
Запрос
|
|||
---|---|---|---|
#18+
Вот это как-то настораживает: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:12 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос???, Исправленный код - в студию! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:14 |
|
Запрос
|
|||
---|---|---|---|
#18+
Saller, опечатка получилась ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:17 |
|
Запрос
|
|||
---|---|---|---|
#18+
причесал код, но все равно говорит что синтаксическая ошибка Код: 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. 34. 35. 36. 37. 38.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:22 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос??? ml.grup as sgrup, ; ml.nnum as snnum, ; ml.name as sartic, ; Здесь верные имена полей? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:35 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос???, скорее всего в этой строчке: Код: plaintext 1.
Я бы переписал ее так: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:43 |
|
Запрос
|
|||
---|---|---|---|
#18+
igorbik, создание таблиц Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:49 |
|
Запрос
|
|||
---|---|---|---|
#18+
В любом случае для проверки я бы сначала выполнил отдельно все подзапросы в курсоры, а затем на них построил главный запрос. Синтаксис всех запросов слегка изменится, особенно главного. По ходу дела могут вывалиться какие-то ошибки. Если все в порядке, а по-старому никак, то смириться и делать запросы по очереди. Возможно также, что Фокс ругается на имена подзапросов, начинающиеся с цифры Вот из Хелпа: "Имена таблиц должны начинаться буквы или знака подчеркивания (_)" Так что имена полей типа "1.postav" могут не восприниматься. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:53 |
|
Запрос
|
|||
---|---|---|---|
#18+
Станислав C., не помогает, все равно говорит что ошибка синтаксиса... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 16:54 |
|
Запрос
|
|||
---|---|---|---|
#18+
igorbik Возможно также, что Фокс ругается на имена подзапросов, начинающиеся с цифры Вот из Хелпа: "Имена таблиц должны начинаться буквы или знака подчеркивания (_)" Так что имена полей типа "1.postav" могут не восприниматься. С трудом разглядел, что l.postav начинается не с цифры, а с буквы "L". Так что это снимается ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 17:04 |
|
Запрос
|
|||
---|---|---|---|
#18+
igorbik, дело в том что данный запрос я пишу в бухгалтерской системе "БЭСТ" называется..., в системе есть модуль для написания запросов к базе, как мне сказали разработчики "Нужно следовать синтаксису VFP 7.0". По теме, подзапросы по отдельности работают, а вместе не хотят уже целый день бьюсь над одним отчетом... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 17:05 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос???, Ну что же, в таком случае я начинаю с чистого листа. Обычно в этом месте все смеются, но мне помогает. Делаем простой запрос: select ml.marka as postav from sclad_mlabel ml Если ОК, то идем дальше: select ; ml.marka as postav, ; ml.grup as sgrup, ; ml.nnum as snnum, ; ml.name as sartic, ; ml.ed as ed ; from sclad_mlabel ml Если ОК, то идем дальше и дальше, подключая фильтры, условия, группировки, соединения и пр. Таким образом проверяем все подзапросы и затем переходим к основному запросу. Если исправить все ошибки по ходу усложнения, то все должно получиться в конце концов. Мне это всегда помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 17:17 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос???igorbik, дело в том что данный запрос я пишу в бухгалтерской системе "БЭСТ" называется..., в системе есть модуль для написания запросов к базе, как мне сказали разработчики "Нужно следовать синтаксису VFP 7.0".Вот с этого и надо было начинать. Вы используете синтаксис 9-ки. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 17:17 |
|
Запрос
|
|||
---|---|---|---|
#18+
проходящий., а в чем разница в синтаксисе??? можно пример ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 17:28 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос???igorbik, уже целый день бьюсь над одним отчетом... Удивили, однако! Иногда днями что-то пытаешься сделать, и в конце концов просто заходишь с другой стороны, и все получается быстро и просто. есть вопрос???igorbik, подзапросы по отдельности работают, а вместе не хотят Не надо вместе их соединять так, как в исходном коде. Это синтаксис 9-ки. Если создан курсор L и курсор T , то осн. запрос напишите так: select ; l.postav as postav, ; l.sgrup as grup, ; l.snnum as nnum, ; l.sartic as artic, ; l.ed as ed, ; t.start_kol as start_kol, ; l.rskolout as kolout, ; l.rssumout as sumout ; from l, t ; where l.sgrup=t.kgrup and l.snnum=t.knnum ; into cursor f1 nofilter и должно быть вам счастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 17:32 |
|
Запрос
|
|||
---|---|---|---|
#18+
есть вопрос???, По коду есть: where md.date between ldStartDate and ldEndDate Должно быть where between ( md.date , ldStartDate, ldEndDate ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 17:39 |
|
Запрос
|
|||
---|---|---|---|
#18+
igorbik, Попробуйте последовательно: select ; ml.marka as postav, ; ml.grup as sgrup, ; ml.nnum as snnum, ; ml.name as sartic, ; ml.ed as ed, ; Round(SUM(IIF(md.vid ='2' and md.type ='1',md.kolout,0)),3)+Round(SUM(IIF(md.vid ='1' and md.type ='5',-md.kolout,0)),3) as rskolout, ; Round(SUM(IIF(md.vid ='2' and md.type ='1',md.sumout,0)),3)+Round(SUM(IIF(md.vid ='1' and md.type ='5',-md.sumout,0)),3) as rssumout ; from sclad_mlabel ml ; inner join sclad_mdocm md on ml.grup = md.grup and ml.nnum=md.nnum ; where BETWEEN(md.date, ldStartDate, ldEndDate) ; and Substr(md.agentcode,1,6)=lcKli ; and md.sclad = lcSclad ; and md.schet_a like '361' ; and len(md.agentcode)>6 and not INLIST(md.sclad, '000010', '000021', '000022', '000023') ; group by ml.marka,ml.grup,ml.nnum,ml.name,ml.ed ; INTO CURSOR L select ; mkt.sclad as ksclad, ; mkt.grup as kgrup, ; mkt.nnum as knnum, ; mkt.kol0+Round(SUM(IIF(mdm.vid ='1',mdm.kolout,0)),3)-Round(SUM(IIF(mdm.vid ='2',mdm.kolout,0)),3) as start_kol ; from sclad_mkart mkt ; inner join sclad_mdocm mdm ; on mkt.grup = mdm.grup ; and mkt.nnum=mdm.nnum ; and mdm.sclad=mkt.sclad ; where mdm.date <ldStartDate and mdm.sclad = cSclad ; group by mkt.sclad,mkt.grup,mkt.nnum,mkt.kol0 ; INTO cursor t select ; l.postav as postav, ; l.sgrup as grup, ; l.snnum as nnum, ; l.sartic as artic, ; l.ed as ed, ; t.start_kol as start_kol, ; l.rskolout as kolout, ; l.rssumout as sumout ; from l,t ; WHERE l.sgrup=t.kgrup and l.snnum=t.knnum Исправлен INLIST Исправлен BETWEEN Вместо LIKE используйте $ (пока я только убрал %% из него) Сложный составной запрос не проходит даже в 9-ке ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2009, 18:03 |
|
|
start [/forum/topic.php?fid=41&msg=36282935&tid=1585904]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 136ms |
0 / 0 |