
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.02.2006, 14:14
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
prod_waste_table с полями prod_id , waste_id , prod_val , waste_per waste_table с полями waste_id , waste_name , toxity_id связана с prod_waste_table по waste_id prod_table с полями prod_id , prod_name связана с prod_waste_table по prod_id надо определить prod_name, у которого sum(prod_val*waste_per) максимальна для toxity_id всего toxity_id может быть 5(1,2,3,4,5), отходов - много-много-много... то есть нужна таблица(курсор) maxtotal: toxity_id, prod_name, max_total_waste (для сравнения с sql) куда надо выбрать prod_name, которое выдает максимальное sum(prod_val*waste_per) as max_total_waste для сего надо написать sql-запрос и запрос без использования sql sql я написала )) без sql пока выглядит так(с помощью одного замечателнього человека с другого форума): Select 0 Use prod_table Order Tag prod_id Select 0 Use waste_table Order Tag waste_id Select 0 Use prod_waste_table Order Tag prod_id * Открываем еще раз prod_waste_table с другим тэгом так как связать * waste_table и prod_table мы можем только через prod_waste_table можно это * конечно делать переключая тэги у дной таблицы и запоминая найденый * значения нужных полей но так проще Select 0 Use prod_waste_table Order Tag waste_id ALIAS waste_id AGAIN Create Cursor Maxtotal (toxity_id i, prod_name c(250), total_waste i) INDEX ON total_waste TAG total_waste Select waste_table Scan All * стали на нужную запись в prod_waste_table по тагу waste_id IF Seek(waste_table.waste_id, 'waste_id') * по prod_id из prod_waste_table нашли нужную запись в prod_table IF Seek(waste_id.prod_id, 'prod_table') * по prod_id из prod_table нашли нужную запись в prod_waste_table для суммирования IF Seek(prod_table.prod_id, 'prod_waste_table') * ВЫбрали prod_waste_table в качестве текущей Select prod_waste_table Sum prod_waste_table.prod_val*prod_waste_table.waste_per To m.total_waste ; WHILE prod_waste_table.prod_id = prod_table.prod_id Rest m.toxity_id=waste_table.toxity_id m.prod_name=prod_table.prod_name Insert Into Maxtotal From Memvar ENDIF ENDIF ENDIF Endscan Select Maxtotal Go bott Brows итоговая должна выглядеть так, например: 1 prod1 45454 2 prod3 44477 3 prod1 121 4 - 0 5 prod6 68 можно без четвертой.. но по вышеприведенному коду считает он неправильно, учитывая все отходы данного производства. а нужно выбирать максимальный отход данной токсичности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:32
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Хорошо курсовые решать с интернетом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:34
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
w3dХорошо курсовые решать с интернетом :) А потом все удивляются, почему программисты FoxPro мягко говоря "неадекватные" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:54
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
w3dХорошо курсовые решать с интернетом :) это не курсовааааяя, это задачка для студенток-второкурсниц экологического факультета... для меня, то есть.... добрые вы.... лучше б помогли... я над ней две недели уже страдаю. сделала почти все, кроме этого вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:56
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Sergey Ch w3dХорошо курсовые решать с интернетом :) А потом все удивляются, почему программисты FoxPro мягко говоря "неадекватные" я не программист. я эколог. будущий. если сдам вот эту вот задачу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 15:26
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
замени Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 15:30
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Dima Tзамени Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. заменила... то же самое, получилось... все равно, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 15:52
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
SQL-запрос покажи. а то плохо понятно что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 15:55
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
проблема в том, как же, елки-палки, это посчитать. то есть надо в prod_waste_table посчитать для всех строк prod_val*waste_per , заменить waste_id на соответствующий toxity_id из waste_table , сложить те строки, у которых prod_id и toxity_id одинаковый, для пяти toxity_id выбрать максимальные показания и заменить prod_id на prod_nam e из prod_table ясно, что нужен цикл. какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 16:03
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Похоже такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: plaintext 1. 2. 3. Если не то - показывай правильный SQL запрос. его кодом повторять проще не вникая в суть задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 16:11
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Dima TSQL-запрос покажи. а то плохо понятно что надо. *q1* CLOSE DATABASES OPEN DATABASE iw_data USE prod_table USE waste_table USE prod_waste_table SELECT Prod_waste_table.prod_id, Prod_table.prod_name,; Waste_table.toxity_id,; SUM(Prod_waste_table.prod_val*Prod_waste_table.waste_per) as total_waste; FROM ; iw_data!prod_table ; INNER JOIN iw_data!prod_waste_table ; ON Prod_table.prod_id = Prod_waste_table.prod_id ; INNER JOIN iw_data!waste_table ; ON Waste_table.waste_id = Prod_waste_table.waste_id; GROUP BY Prod_waste_table.prod_id, Prod_table.prod_name,; Waste_table.toxity_id; INTO CURSOR q11 *q2* Select (Max(total_waste)) As max_total_waste, toxity_id ; From q11 ; Group By toxity_id; INTO CURSOR q22 Select t1.toxity_id, t1.prod_name, t1.total_waste; FROM q11 As t1, q22 As m; WHERE t1.toxity_id = m.toxity_id And t1.total_waste = m.max_total_waste таблички лежат тут: http://coraclaire.narod.ru/vfp/waste_table.dbf http://coraclaire.narod.ru/vfp/prod_waste_table.dbf http://coraclaire.narod.ru/vfp/prod_table.dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 16:47
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 16:56
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#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. Код: 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. Типы и размеры данных взяты предположительные, чтобы хоть какие-то бли. Сразу может не заработать, так как писал "набело". ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 16:57
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Мой вариант пока самый лучший - он реализует выборку в один проход (не считая построения индекса, конечно) ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 17:12
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Urri... Сразу может не заработать, так как писал "набело". ;-) Все сдаюсь, но за тобой исправлять ошибки не буду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 17:14
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Супер!!! чуток изменила только в конце Go Top SET FILTER TO !DELETED() Brows и все стало в шоколаде! Большое Спасибо!!! :) будешь в Казани, буду отпаивать чаем с печенюжками! или пивом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 17:19
|
|||
|---|---|---|---|
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Zverka... SET FILTER TO !DELETED() ... обычно SET DELETED ON по умолчанию ставят чтобы помеченные на удаление не видеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 17:47
|
|||
|---|---|---|---|
|
|||
VFP:Выборка без sql-как грамотно организовать цикл? |
|||
|
#18+
Dima T Zverka... SET FILTER TO !DELETED() ... обычно SET DELETED ON по умолчанию ставят чтобы помеченные на удаление не видеть. ну у меня там меню редактирования есть, где все помеченные на удаление и удаляются, если это разрешено условиями... как-то не подумала, что где-то еще будут видны помеченные записи.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1592235]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 471ms |

| 0 / 0 |
