|
Select
|
|||
---|---|---|---|
#18+
Есть таблица table: Отдел Ф.И.О. Возраст otd fio vozr 1 Иванов 26 1 Петров 22 1 Сидоров 23 По запросу select a.otd, a.fio, max(a.vozr) from table group by otd into table2 получаю результат: Отдел Ф.И.О. Возраст otd fio vozr 1 Сидоров 26 а нужно Отдел Ф.И.О. Возраст otd fio vozr 1 Иванов 26 т.е. в итоговый запрос выбирать не последнюю запись + максимальный возраст среди всех сотрудников, а ту запись целиком где возраст сотрудника максимальный. Подскажите, что нужно поменять. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 12:28 |
|
Select
|
|||
---|---|---|---|
#18+
faustgreen, Поменять нужно логику восприятия. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 12:58 |
|
Select
|
|||
---|---|---|---|
#18+
А версию фокса было слабО указать ? Задробили в этом форуме уже вопросы без указания версии, модератор, ты спишь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 18:04 |
|
Select
|
|||
---|---|---|---|
#18+
Помогите уже голову сломал! VFP v.8.0 Есть три таблицы: ten - там признак ID и FIO; izm - там так же признак ID и сумма SUMM1; dolg - там так же признак ID и другая сумма SUMM2 Необходимо сформировать таблицу с данными: ID, FIO, S1, S2 при чем во второй и третьей таблицы записи по ID могут быть повторяться, т.е. необходимо проссумировать SUMM1 в izm и SUMM2 в dolg по признаку ID SELECT ten.ID, ten.FIO, SUM(izm.SUMM1) as S1, SUM(dolg.Summ2) as S2 ; FROM ten, izm, dolg ; INTO DBF sbor ; WHERE izm.ID=ten.ID AND dolg.ID=ten.ID ; GROUP BY izm.ID, dolg.ID ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 06:26 |
|
Select
|
|||
---|---|---|---|
#18+
Валерий Фомин, А вам обязательно сохранять это в файл? Курсора не достаточно будет? А по предъявленному коду могу предположить поправить: Код: sql 1. 2. 3. 4. 5.
Здесь отсутствует сохранение в файл, думаю что вам оно нужно как временные данные... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 07:25 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, По вашему примеру я написал вот это, но результат таков что таблица sbor пустая. Где может быть ошибка? SELECT q1.id, sum(q2.summ1) as s1, sum(q3.summ2) as s2 ; FROM q1 ; INNER JOIN q2 ON q1.id = q2.id ; INNER JOIN q3 ON q1.id = q3.id ; GROUP BY q1.id ; INTO DBF sbor ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 07:44 |
|
Select
|
|||
---|---|---|---|
#18+
Валерий Фомин, А сам запрос что-нибудь возвращает? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 07:55 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, Как я понимаю Вы интересуетесь создается ли таблица SBOR, то я могу сказать что она создается с нужными полями но пустая! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 08:04 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, Пример: таблица Q1 таблица Q2 таблица Q3 ID ID Summ1 ID Summ2 1 1 10.25 2 10.25 2 2 25.63 3 25.65 3 2 13.00 3 -65.95 4 2 -63.25 5 Мне надо что бы вышел такой результат: таблица SBOR ID S1 S2 1 10.25 0.00 2 -24.62 10.25 3 0.00 -40.30 4 0.00 0.00 5 0.00 0.00 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 08:12 |
|
Select
|
|||
---|---|---|---|
#18+
Валерий Фомин, Извините! Не посмотрел предварительный просмотр! Не верно отобразился пример! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 08:13 |
|
Select
|
|||
---|---|---|---|
#18+
Валерий Фомин, Я сейчас попробовал создал эти три таблицы и сделал запрос: Код: sql 1. 2. 3.
И у меня результат 3 строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 08:23 |
|
Select
|
|||
---|---|---|---|
#18+
Валерий Фомин, Ну как у вас получилось? В последнем примере я вам сделал и с фамилией тоже, суммы 2 на каждую запись, суммирует правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 09:15 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, Мне немного не понятно параметр TEN ? Раз Вы используете таблицы Q1, Q2, Q3 зачем там ten, izm, dolg ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 10:13 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, Я бы хотел чтобы получилось вот такой результат! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 10:36 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, я с Вами согласен результат Вашего решения такой, но мне необходимо все FIO ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 10:45 |
|
Select
|
|||
---|---|---|---|
#18+
Валерий Фомин, q1, q2, q3 это псевдонимы, объявленный в запросе для упрощения обращения к полям разных таблиц. Запрос как я вижу у вас все таки заработал, это уже хорошо. Теперь вам необходимо чтобы выбирались все поля из таблицы ten, но вы не ставили изначально так вопрос. Теперь попробуем подшаманить запрос, чтобы выбирать все записи из ten: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 10:54 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, команда отработала, но по таблице DOLG, а по таблице IZM умножилась на кол-во записей в таблице DOLG !!!??? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 12:18 |
|
Select
|
|||
---|---|---|---|
#18+
AngelOKES, Значение SUM(Iif(Isnull(q2.summ1),000000000.00,q2.summ1)) можно заменить SUM(NVL(q2.summ1,0)) А по остальному у меня пока засада, есть конечно решение сделать это через три команды SELECT, но хотелось бы обойтись одной! Спасибо огромное за взаимопонимание! Если у Вас будет решение данной задачи через один SELECT, то я почту за честь! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 12:28 |
|
Select
|
|||
---|---|---|---|
#18+
Валерий Фомин, Пока что только двумя запросами, но сейчас думаю как сделать одним: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 13:08 |
|
Select
|
|||
---|---|---|---|
#18+
Вот решение одним запросом: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 14:15 |
|
Select
|
|||
---|---|---|---|
#18+
Для VFP8 это работать не будет. Подзапросы - недопустимы. Поэтому лучше сделать 3 последовательных запроса Код: sql 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.
Для VFP9 можно и одним запросом с подзапросами. Например, так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 14:39 |
|
Select
|
|||
---|---|---|---|
#18+
ВладимирМ, Да я думаю это самый полный ответ, я тоже хотел сделать с UNION, но забыл как обратиться к подзапросу, теперь вспомнил что ему надо было дать имя, как вы например tmp. Спасибо, теперь я вспомнил как это делается :) Но все таки если это делается для VFP9.0, то можно использовать и мой вариант :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 14:51 |
|
|
start [/forum/topic.php?fid=41&msg=37692935&tid=1583798]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 263ms |
total: | 416ms |
0 / 0 |