Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом / 2 сообщений из 2, страница 1 из 1
25.04.2002, 17:20
    #32028852
Polevi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом
Необходимо собрать все движение денег в одном запросе

Есть 3 таблицы
1. Accounts (ID,Price,PaymentForm) - счета в продажах
2. MStream (ID,PaymentForm) - счета в платежах
3. AccMStream (AccID,MStreamID,Price) - деньги из платежей расписываются по продажным счетам
- AccID - ссылка на продажный счет, MStreamID - ссылка на платежный счет
4. PaymentForms (ID,Debet,FOType) - формы оплаты
- Debet=1 если сумма идет в дебет, Debet=0 если в кредит
FOType=135 если это форма оплаты в продажах, 206 - если в платежах

Необходимо написать запрос, который будет возвращать ID продажного счета, и сумму в дебете и кредите, брошенных на него

SELECT A.ID,
CASE PFIds.Debet
WHEN 1 THEN CASE PFIds.FOType WHEN 135 THEN A.Price WHEN 206 THEN AMS.Price END
ELSE 0
END AS Debet,
CASE PFIds.Debet
WHEN 0 THEN CASE PFIds.FOType WHEN 135 THEN A.Price WHEN 206 THEN AMS.Price END
ELSE 0
END AS Kredit

FROM Accounts A
LEFT JOIN AccMStream AMS ON AMS.AccID=A.ID
LEFT JOIN MStream MS ON MS.ID=AMS.MStreamID
JOIN PaymentForms PFIds ON (A.PaymentForm=PFIds.ID OR MS.PaymentForm=PFIds.ID)

Проблема в том, что если для счет в Accounts оплачивался несколькими записями в AccMStream то столько-же раз в выборку попадает его сумма

ID Debet Kredit

2355 31.5000 .0000
2355 .0000 10.0000
2355 .0000 1.0000
2355 .0000 1.0000
2355 31.5000 .0000
2355 31.5000 .0000
2457 2211.6000 .0000

То есть есть счет в Accounts стоимостью 31.5 и он оплачивался 3 записями в AccMStream - видно, что сумма 31.5 присутствует в выборке 3 раза...

Добрые люди, отзовитесь, должно же быть какое-нибудь решение..
Варианты с UNION не подходят, так как должна быть возможность группировки по Accounts.ID

serg@finco.spb.ru
...
Рейтинг: 0 / 0
26.04.2002, 06:21
    #32028889
Faza
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом
Попробуй
select distinct...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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