Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.04.2002, 17:20
|
|||
|---|---|---|---|
Нужна помощь с запросом |
|||
|
#18+
Необходимо собрать все движение денег в одном запросе Есть 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1822940]: |
0ms |
get settings: |
10ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 363ms |

| 0 / 0 |
