Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
Здравствуйте... попрошу помочь понять в чем проблема. Есть виражения для вывода round((b_d * b_a)::numeric,2) as b, round((s_d * s_a)::numeric,2) as s, round((t_d * c)::numeric,2) as t, которые дают к примеру 1000 а в следующей строчке я их симирую вот так (round((b_d * b_a)::numeric,2) + round((s_d * s_a)::numeric,2) + round((t_d * c)::numeric,2)) as suma и результат уже 900 Помогите разобраться. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2016, 17:44 |
|
||
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
* которые дают к примеру 1000 если суммировать в екселе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2016, 17:50 |
|
||
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
lux77755, покажите полностью запросы. я подозреваю что над указанными значениями считается сумма и какие-то из них являются null. а null +something это null. пример: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2016, 21:14 |
|
||
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
Спасибо за Ваш ответ. Попробовал обойти наличие null. Но видимо чтото не правильно на суму опять не выхожу. ((case when round((b_d * b_a)::numeric,2) = NULL then 0 else round((b_d * b_a)::numeric,2) end) + (case when round ((s_d * s_a)::numeric,2) = NULL then 0 else round ((s_d * s_a)::numeric,2) end) + (case when round ((t_d * c)::numeric,2) = NULL then 0 else round ((t_d * c)::numeric,2) end) ) as ca ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 16:43 |
|
||
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
если есть возможность то можно ли пояснить данную строку (select 1 as x, null as y union all select null, 2 union all select 3, 3) t; Так как не встречал с такий записью или ето не для постгреса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 17:22 |
|
||
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
lux77755= null ничто не равно null, для этого есть проверка is null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 18:02 |
|
||
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
lux77755, с null нельзя сравнивать через оператор равенства (результат будет null и всегда будет выбираться else ветка в case), нужно через is null. а вообще посмотрите функцию coalesce. lux77755если есть возможность то можно ли пояснить данную строку (select 1 as x, null as y union all select null, 2 union all select 3, 3) t; Так как не встречал с такий записью или ето не для постгреса? для постгреса, выполните подзапрос и увидите 3 строки с тестовыми данными. а что именно смущает? отсутствие from? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 18:02 |
|
||
|
Разница сум
|
|||
|---|---|---|---|
|
#18+
lux77755, для того что вы пытаетесь сдлать есть функция COALESCE(round((b_d * b_a)::numeric,2), 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 20:19 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=82&tid=1996858]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 402ms |

| 0 / 0 |
