Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите пожалуйста правильно посчитать разность
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Следующая задача. Имеем две таблицы: main ---- main_id| value 1| 50 2| 60 3| 40 4| 20 second sec_id| main_id| value 1| 1| 10 2| 1| 15 3| 2| 5 4| 3| 10 Нужно для каждого main_id посчитать разницу между value в main и всеми value в second, для которых second.main_id = main.main_id. Проблема в том что в случае отсутсвия строк в second получается NULL! Я делаю так: SELECT main_id, value - (SELECT SUM(value) FROM second WHERE second.main_id = main.main_id) FROM main; Если так делать, то по main_id номер 4 будет получатся NULL вместо положенного 20. Как решить эту проблему? Я придумал только одно: проверять на наличие записей в таблице second и использовать два запроса объединенные UNION. Но очень желательно сделать без этого. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 08:49 |
|
||
|
Помогите пожалуйста правильно посчитать разность
|
|||
|---|---|---|---|
|
#18+
Может стОит вот так попробывать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 09:11 |
|
||
|
Помогите пожалуйста правильно посчитать разность
|
|||
|---|---|---|---|
|
#18+
Анна, большое спасибо! Это то что нужно. Следующий вопрос уже только из интереса. Если бы мы находились за рамками T-SQL и не имели бы в распоряжении функции ISNULL, то как бы вышли из данной ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 09:18 |
|
||
|
Помогите пожалуйста правильно посчитать разность
|
|||
|---|---|---|---|
|
#18+
NegatorЕсли бы мы находились за рамками T-SQL и не имели бы в распоряжении функции ISNULL, то как бы вышли из данной ситуации?Вообще, в ANSI-SQL на этот случай (преобразование неопределенного значения NULL в НЕКОТОРОЕ ОПРЕДЕЛЕННОЕ значение) предусмотрена функция Код: plaintext И если сервер претендует на совместимость с ANSI-SQL92 (и выше), то сия функция должна в нем присутствовать. Кроме того, есть выражение CASE, которое так же описано в стандарте ANSI-SQL92 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 09:28 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34049139&tid=2012514]: |
0ms |
get settings: |
6ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 355ms |

| 0 / 0 |
