![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL
Bilfeld © (2002-07-31 09:42:00)Помогите! Бьюсь уже давно, не получается
Имеем две базы P(приход), R (расход) с аналогичными полями Name (символьное) и S (числовое)
В базе P может быть:
Иванов 7
Петров 8
Иванов 10
Иванов 8
Сидоров 9
В базе R может быть
Петров 4
Иванов 2
Иванов 3
Петров 2
Козлов 3
Необходимо написать запрос (без представления)чтобы получить сальдо, т.е.
Иванов 20
Петров 2
Сидоров 9
Козлов -3
VAleksey (2002-07-31 11:20:00) [21]
>
> ЮЮ (31.07.02 11:00)
Раздел не найден.
Неужели работает ?
ЮЮ (2002-07-31 11:00:00) [22]И почитай раздел VIEWs в Local SQL Help :-) Я сам был поражён, т.к. в те времена, когда писал под Paradox не мог использовать "нормальные" запросы, а ларчик-то просто открывался :-)
ЮЮ (2002-07-31 10:56:00) [23]Я не имею привычки отправлять непроверенные заключения :-)
Проверь на любой Paradox-таблице
VAleksey (2002-07-31 10:48:00) [24]по моему такое можно замутить только при использовании хранимых процедур.
если это получится одним запросом к таблицам парадокс ... вышли пожалуйста мне таблички и запрос (работающий ес-но).
ЮЮ (2002-07-31 10:36:00) [25]Да, если у тебя Paradox, то он не поддерживает подзапросы.
Но если ты используешь BDE, тогда запрос будет:
select Name,sum(S) from PandR.sql group by Name
где в файле "PandR.sql" будет лежать подзапрос:
select Name,S from P
union
select Name,-S from R
ЮЮ (2002-07-31 10:21:00) [26]to fnatali
p full outer join r даст N1 х N2 строк, т.е.
Иванов 7 2
Иванов 7 3
Иванов 8 2
Иванов 8 3
Иванов 10 2
Иванов 10 3
Вряд ли сальдо здесь сойдётся :-)
fnatali (2002-07-31 10:11:00) [27]Поправлюсь
select p.name, sum(p.s)-sum(r.s) saldo from p full outer join r on p.name=r.name
group by p.name
и по желанию добавить order by
ЮЮ (2002-07-31 10:10:00) [28]Ознакомься с group by и union, и столько биться не прийдётся :-)
select Name,sum(S) from
(select Name,S from P
union
select Name,-S from R
) PandR
group by Name
fnatali (2002-07-31 10:08:00) [29]select p.name, sum(p.s)-sum(r.s) saldo from p full outer join r on p.name=r.name
В зависимости от используемого типа СУБД синтаксис запроса может несколько измениться, Н.В. :)
IlyaA (2002-07-31 10:03:00) [30]а что такое сальдо. Мы тут компьютерщики, а не бухгалтеры. Я знаю, что надо что-то сложить, откуда-то вычесть и т.п.