Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
Что-то я уперся и не понимаю, куда дальше двигаться, вроде совсем простой запрос ( Есть таблица `sht` - счета, и `pp` - платежные поручения. По каждому счету, которые находится в работе, может быть несколько платежных поручений, или ни одного. Нужно выбрать счета, за которыми числится долг, т.е. сумма счета больше суммы поступивших по этому счету платежек. Запрос: Код: sql 1. 2. 3. 4. 5. 6. выводит только те счета, по которым есть хотя бы один платеж. Каким образом вывести также и те, по которым нет ни одной платежки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 11:15 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
Greider, RIGHT замените на LEFT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 11:45 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
miksoftGreider, RIGHT замените на LEFT Да я с LEFT и начинал на самом деле... результат идентичен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 11:48 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 12:01 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
хм... "Функция MySQL COALESCE возвращает первое ненулевое выражение в списке." А мне нужно наоборот, чтобы в список попадали и null-значения SUM. В таком виде результат 0 строк... Сделал пока два селекта и UNION (в таблице счетов есть некоторая избыточность в виде номера первой платежки, хотя это и не очень правильно наверно), работает удовлетворительно, хотя конечно одним сделать интересней... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 12:52 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
Greider"Функция MySQL COALESCE возвращает первое ненулевое выражение в списке." Где ты такой бред вычитал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 13:27 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
AkinaГде ты такой бред вычитал? По первой выпавшей ссылке... сейчас вот тут почитал и понял, что имелось ввиду. Попробовал ещё раз - результат есть (за 6.48 секунды), но добавился всего один неоплаченный счет, а их около десятка... и то, если оставить строчку GROUP BY pp.sht_no. Без нее ничего не выводит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 14:37 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
Жуть какая... а официальную документацию читать - не наш метод? https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_coalesce Returns the first non-NULL value in the list, or NULL if there are no non-NULL values. Greiderи то, если оставить строчку GROUP BY pp.sht_noДа, её я забыл вставить в код, а без неё SUM посчитает хрень. Код: sql 1. 2. 3. 4. 5. 6. И ещё мелочь - какой тип у полей sht.sht_sum и pp.pl_sum? Если не DECIMAL, то возможны определённые проблемы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 15:05 |
|
||
|
Подсчет долгов по выписанным счетам
|
|||
|---|---|---|---|
|
#18+
Akina, огромное спасибо (в очередной раз)! Действительно, дело было в GROUP BY! Надо было группировать и по номеру из sht, и из pp Вот так всё работает как надо: Код: sql 1. 2. 3. 4. 5. Можно еще IFNULL как я понял использовать p.s. да, поля с суммами все в DECIMAL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 15:56 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39550912&tid=1830281]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 132ms |

| 0 / 0 |
