powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите составить запрос, если не затруднит.
7 сообщений из 7, страница 1 из 1
Помогите составить запрос, если не затруднит.
    #33634492
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица:
Nr - номер реестра
KodOp - код операции
KodVPr - код валюты по приходу
SumPr - приход
KodVRas - код валюты по расходу
SumRas - расход

Надо составить запрос, чтобы было:
Nr - номер реестра
KodVal - код валюты
Pr - сумма по приходу (по коду валюты)
Ras - сумма по расходу (по коду валюты)
Из результата д.б. исключены операции с кодами 10, 20, 30.
Группировка по номеру реестра и по коду валюты.
Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите составить запрос, если не затруднит.
    #33634519
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для решения задачи не хватает некоторых данных, а именно:
1. Название исходной таблицы.
2. Не указано правило, по которому ДВА кода валюты должны превратиться в ОДИН.
...
Рейтинг: 0 / 0
Помогите составить запрос, если не затруднит.
    #33634549
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Исходная, ну пусть будет Table1

2. Ну если они одинаковые, тогда объединяются.

Можно правда, как вариант, прицепить ещё другую таблицу
Table2.numv - код валюты
...
Рейтинг: 0 / 0
Помогите составить запрос, если не затруднит.
    #33634657
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT ;
	Nr, ;
	IIF(EMPTY(KodVPr)=.F.,KodVPr,KodVRas) as KodVal, ;
	SUM(SumPr) as Pr, ;
	SUM(SumRas) as Ras ;
FROM table1
GROUP BY  1 , 2 

Если поля с кодом валют могут принимать значение NULL, то необходима еще дополнительная проверка на NULL.
...
Рейтинг: 0 / 0
Помогите составить запрос, если не затруднит.
    #33634706
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поля могут принимать значение NULL.
А как исключить операции с определёнными кодами?
...
Рейтинг: 0 / 0
Помогите составить запрос, если не затруднит.
    #33634756
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT ;
	Nr, ;
	IIF(EMPTY(KodVPr)=.F.,KodVPr,KodVRas) as KodVal, ;
	SUM(SumPr) as Pr, ;
	SUM(SumRas) as Ras ;
FROM table1
GROUP BY  1 , 2 

Если поля с кодом валют могут принимать значение NULL, то необходима еще дополнительная проверка на NULL.
Этот запрос у меня почему то не правильно работает:
Пример: в Table1 есть запись (за 2800 руб. продали $100)
Nr = 2
KodVPr = 810
SumPr = 2800
KodVRas = 840
SumRas = 100
В запросе уже должно быть 2 записи (даже если в Table1 всего 1):
Nr KodVal Pr Ras
2 810 2800 0
2 840 0 100
...
Рейтинг: 0 / 0
Помогите составить запрос, если не затруднит.
    #33634835
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так надо же предупреждать, что Приход и Расход могут быть заполнены одновременно! Тогда эта задача решается только через подзапросы. Надо учесть одну и ту же запись дважды.

Код: 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.
SELECT ;
	Nr, ;
	KodVPr as KodVal, ;
	SUM(SumPr) as Pr, ;
	SUM(SumRas-SumRas) as Ras ;
INTO CURSOR curSum ;
FROM table1 ;
GROUP BY  1 , 2  ;
UNION ALL ;
SELECT ;
	Nr, ;
	KodVRas as KodVal, ;
	SUM(SumPr-SumPr) as Pr, ;
	SUM(SumRas) as Ras ;
FROM table1 ;
GROUP BY  1 , 2  

* Теперь суммируем результат
SELECT ;
	Nr, ;
	KodVal, ;
	SUM(Pr) as Pr, ;
	SUM(Ras) as Ras ;
FROM curSum ;
GROUP BY  1 , 2  
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите составить запрос, если не затруднит.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]