Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
У меня есть 2 таблицы Balance и Statistica. Приведу также часть записей из этих таблиц. 3 строчки из таблицы Balance(ID , ID_Statistica, DateReport, Dogovor, Dolg): ('29', '12', '20141231', 'a', '100000-3000-3000-3000-3000-3000-3000-3000-3000-3000-3000-3000'), ('30', '12', '20141231', 'b', '100000-1000-1000-1000-1000-1000-1000-1000-1000-1000-1000-1000'), ('31', '12', '20141231', 'c', '200000-10000-10000-10000-10000-10000-10000') 1 строчка из таблицы Statistica (ID,DateReport,Days, Stavka): ('12', '20141231', '16', '0.035*1.15*1.15*1.15*1.15/1.05/1.05/1.05/1.05/1.05/1.05/1.05') Они связаны по внешнему ключу Balance.ID_Statistica=Statistica.ID. Количество записей более тысячи. Мне нужно умножить Dolg на Stavka. Dolg и Stavka стал хранить в nvarhar(max). Как это сделать не пойму. Спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 13:55 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
Это в варчарах хранится выражение, которое надо вычислить. или это такой забубённый CSV? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 14:04 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
Pacifany, создай в базе вот такую функцию fnEvalJS Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. и можешь не отбивать себе руки дальше хранить хранить всё в nvarhar-арах :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. xz2914,802376725573871,901664605616090,63183196389 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 14:14 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
Храню в nvarchar(max). Я так понял нужно преобразовать сначала, идеи мои иссякли) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 14:15 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
court, Спасибо, все работает!!! Возник вопрос, а можно с помощью этой функции посчитать столбик Dolg в таблице баланс, если нужно узнать сумму общего долга? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 14:45 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
PacifanyВозник вопрос, а можно с помощью этой функции посчитать столбик Dolg в таблице баланс, если нужно узнать сумму общего долга?А кто нам может запретить ?! :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 14:50 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
court, Спасибо большое. Последний вопрос, а как мне вытащить кроме суммы DateReport и Days? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 15:20 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
Мне нужно показать, сколько было сформировано резервов по договору “с”(столбец Dogobor) на конец декабря 2014 года, если доля резервов по данному продукту относительно общей суммы резервов составляет 14%; ставку резервирования по данному договору на конец декабря 2014. Показать в одном Окне результатов.(Резерв = Dolg*Stavka). Научился как находить резерв с помощью функции, а дальше ни как. С подобным заданием не сталкивался никогда((( Буду благодарен за любую помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 17:26 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
Решил задачу, завернул в ABS: Код: sql 1. 2. 3. 4. 5. 6. 7. Один вопрос не закрытый, я пока не могу решить ее. Мне нужно показать минимальную ставку в году, за какой месяц она была(вывести по выборке столбец DateReport) и сумму резерва (Dolg*Stavka). Минимальную ставку я нахожу таким образом: Код: sql 1. 2. 3. 4. А как по найденной ставки вытащить DataReport и посчитать резерв (Dolg*Stavka) я не могу понять. Вложенным селектом не получается, отдельную функцию писать для этого? Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 22:48 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
PacifanyМне нужно показать, сколько было сформировано резервов по договору “с”(столбец Dogobor) на конец декабря 2014 года, если доля резервов по данному продукту относительно общей суммы резервов составляет 14%; ставку резервирования по данному договору на конец декабря 2014. Показать в одном Окне результатов.(Резерв = Dolg*Stavka). Научился как находить резерв с помощью функции, а дальше ни как. С подобным заданием не сталкивался никогда((( Буду благодарен за любую помощь. Судя по ID к дате 20141231 Pacifany(ID , ID_Statistica, DateReport, Dogovor, Dolg): ('29', '12', '20141231', 'a', '100000-3000-3000-3000-3000-3000-3000-3000-3000-3000-3000-3000'), (ID,DateReport,Days, Stavka): ('12', '20141231', '16', '0.035*1.15*1.15*1.15*1.15/1.05/1.05/1.05/1.05/1.05/1.05/1.05') у вас записей не очень много. Точнее, судя по количеству значений в Dolg у вас это помесячные срезы, коих всего 12 в году. В этом случае с функцией можно жить. Но чисто FYI: тот, кто проектировал БД не знаком с базовыми (извините за тавтологию) понятиями как работают базы данных. Эти таблицы нарушают первую нормальную форму, поэтому вы и имеете проблему использования ваших значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 01:42 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
В таблице статистика записей не так много, а в таблице баланс достаточно много. Вы и будете продолжать писать про 1НФ или предложите вариант решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 10:10 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
PacifanyОдин вопрос не закрытый, я пока не могу решить ее. Мне нужно показать минимальную ставку в году, за какой месяц она была(вывести по выборке столбец DateReport) и сумму резерва (Dolg*Stavka). Минимальную ставку я нахожу таким образом: Код: sql 1. 2. 3. 4. А как по найденной ставки вытащить DataReport и посчитать резерв (Dolg*Stavka) я не могу понять. а "сумму резерва (Dolg*Stavka)" за все периоды ? ты бы не "насиловал" свои повествовательные способности, а примером данных / результата изъяснялся, - лучше бы было всем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 15:10 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
court, Извините, сейчас уточню. Мне нужно показать минимальную ставку резерва в году; месяц, в котором была эта ставка; сумму сформированного резерва в этот месяц в одном окне результатов. Код: sql 1. 2. 3. Так вытягиваю минимальную ставку, а по ней не получается вытянуть дату и сумму резерва. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 15:17 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
Pacifanycourt, Извините, сейчас уточню. Мне нужно показать минимальную ставку резерва в году; месяц, в котором была эта ставка; сумму сформированного резерва в этот месяц в одном окне результатов. значит в этом запросе просто убираешь over() и всё Код: sql 1. 2. 3. 4. 5. 6. 7. 8. DateReport - задаёт день или месяц ? если это день, то выбирать и группировать по format(DateReport, 'yyyyMM') и зачем там везде ABS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 15:25 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
court, Я думаю ABS тут не нужен, просто найти минимальное значение и по нему вывести месяц(формат Date) и сумму резерва за этот месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 15:31 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
Изменил немного ваш запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. не срабатывает, выдает "Неправильный синтаксис около ключевого слова "from". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 15:36 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
PacifanyИзменил немного ваш запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. не срабатывает, выдает "Неправильный синтаксис около ключевого слова "from". ну вы посчитайте скобочки для начала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 15:37 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
И правда, скобочку упустил, запарился уже. Спасибо вам большое, тема закрыта. Много научился у вас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 15:44 |
|
||
|
Произведение двух столбцов из разных таблиц.
|
|||
|---|---|---|---|
|
#18+
courtPacifany, создай в базе вот такую функцию ... Спасибо, поржал было интересно, кроме шуток. Я бы распарсил по знакам * и /, ну хотя бы с помощью преобразования в xml, а потом сложил бы логарифмы. Ну, или написал бы CLR. Буду знать, что так можно. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 12:15 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1689041]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
131ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 498ms |

| 0 / 0 |
