Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Есть две таблицы: письма и тесты заголовков писем. Если в таблице с тестами, скажем, 3 строки, то при добавлении 9 строк в таблицу писем необходимо, чтобы результат был таким: Заголовок письма Текст письмаТест заголовка 1 Текст письмаТест заголовка 1 Текст письмаТест заголовка 1 Текст письмаТест заголовка 2 Текст письмаТест заголовка 2 Текст письмаТест заголовка 2 Текст письмаТест заголовка 3 Текст письмаТест заголовка 3 Текст письмаТест заголовка 3 Текст письма Подскажите, пожалуйста, как эту задачу можно решить с помощью select или update, если это возможно. Я пока кроме курсора выходов не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 16:40 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Vsevolod V, авторSELECT L.*, H.* FROM LETTERS L CROSS JOIN HEADERS H так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 16:44 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
xenix, Спасибо. Нет, не так. В вашем варианте будет 1 получателю отправлено 3 письма с разными заголовками. И в общей сложности будет 27 писем, а не 9 Заголовок письмаТекст письмаEmailТест заголовка 1Текст письмаburkov@mail.ruТест заголовка 1Текст письмаfoma@yandex.ruТест заголовка 1Текст письмаgurch@mail.ruТест заголовка 2Текст письмаborya@gmail.comТест заголовка 2Текст письмаs.krupko@mail.ruТест заголовка 2Текст письмаmashhod@yandex.ruТест заголовка 3Текст письмаvorobeva.2017@gmail.comТест заголовка 3Текст письмаvershinin@uralsibstal.comТест заголовка 3Текст письмаganediy@yandex.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:00 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ntxttxt1Тест заголовка 1Текст письма 11Тест заголовка 1Текст письма 21Тест заголовка 1Текст письма 32Тест заголовка 2Текст письма 42Тест заголовка 2Текст письма 53Тест заголовка 3Текст письма 63Тест заголовка 3Текст письма 7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:03 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
ntile, Спасибо! Похоже на то что надо. Буду проверять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:09 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
ntile, В предложенном вами решении используется переменная @cnt, которая вроде как становится прецедентом для появления курсора. Дело в том, что задача усложнена тем, что в таблице писем разные рассылки с разными наборами тестируемых значений. То есть количество тестируемых значений необходимо рассчитывать в запросе, а не выводить в переменную. Я попробовал это сделать, но столкнулся с ошибкой: "Ссылка на столбец "mt_id" недопустима в аргументе для функции NTILE. Допускаются только ссылки на столбцы внешней области или изолированные выражения и вложенные запросы." Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:05 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Vsevolod Vntile, В предложенном вами решении используется переменная @cnt, которая вроде как становится прецедентом для появления курсора. Дело в том, что задача усложнена тем, что в таблице писем разные рассылки с разными наборами тестируемых значений. То есть количество тестируемых значений необходимо рассчитывать в запросе, а не выводить в переменную. Я попробовал это сделать, но столкнулся с ошибкой: "Ссылка на столбец "mt_id" недопустима в аргументе для функции NTILE. Допускаются только ссылки на столбцы внешней области или изолированные выражения и вложенные запросы." Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Зачем это where в подзапросе ? Вот так "работает" Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:20 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Давайте лучше заново более полно сформулирую задачу со своей структурой данных. Таблицы: 1. v_A_TasksMail - таблица писем, каждое письмо относится к той или иной рассылке, все тесты проводятся в рамках рассылки так, что тесты одной рассылки не пересекаются с тестами другой. m_id_parent - идентификатор рассылки m_id m_addressFrom m_addressTo m_subject m_text m_nameFrom m_id_parent1 'vova@yandex.ru''vasya@mail.ru''Поздравляем Вас с Новым Годом!''Добрый день! Примите наши теплый поздравления''Всеволод Гаврилов'222 'vova@yandex.ru''ivan@mail.ru''Поздравляем Вас с Новым Годом!''Добрый день! Примите наши теплый поздравления''Всеволод Гаврилов'223 'vova@yandex.ru''petr@mail.ru''Поздравляем Вас с Новым Годом!''Добрый день! Примите наши теплый поздравления''Всеволод Гаврилов'224 'gena@yandex.ru''masha@mail.ru''Услуги клининга в Санкт-Петербурге''Добрый день! Заказывайте клининг только у нас!''Всеволод Гаврилов'235 'gena@yandex.ru''dasha@mail.ru''Услуги клининга в Санкт-Петербурге''Добрый день! Заказывайте клининг только у нас!''Всеволод Гаврилов'236 'gena@yandex.ru''zinaida@mail.ru''Услуги клининга в Санкт-Петербурге''Добрый день! Заказывайте клининг только у нас!''Всеволод Гаврилов'237 'olga@yandex.ru''stepan@mail.ru''Фильтры воды для дома и дачи''Добрый день! Заказывайте фильтры воды только у нас!''Всеволод Гаврилов'24 2. tMailTest - Таблица тестов для рассылки, например, тест темы письма, тест имени отправителя и т.п. Одна рассылка может содержать несколько тестов mt_id mt_name m_id_parent1 'Тест заголовка письма' 222 'Тест заголовка письма' 23 3. tMailTestValues mtv_id mt_id mtv_value11'С Новым 2018 Годом!'21'Поздравляем от всей души с Новым Годом'31'От всей души поздравляем с Новым Годом'42'Профессиональные услуги клининга!'52'Позаботьтесь о чистоте в вашем доме' Моя задача в том, чтобы в результирующем наборе данных получить подмененные в зависимости от теста значения. А если теста нет, то ничего не подменять. Результат должен быть таким: m_id m_addressFrom m_addressTo m_subject m_text m_nameFrom m_id_parent1 'vova@yandex.ru''vasya@mail.ru''С Новым 2018 Годом!''Добрый день! Примите наши теплый поздравления''Всеволод Гаврилов'222 'vova@yandex.ru''ivan@mail.ru''Поздравляем от всей души с Новым Годом''Добрый день! Примите наши теплый поздравления''Всеволод Гаврилов'223 'vova@yandex.ru''petr@mail.ru''От всей души поздравляем с Новым Годом''Добрый день! Примите наши теплый поздравления''Всеволод Гаврилов'224 'gena@yandex.ru''masha@mail.ru''Профессиональные услуги клининга!''Добрый день! Заказывайте клининг только у нас!''Всеволод Гаврилов'235 'gena@yandex.ru''dasha@mail.ru''Позаботьтесь о чистоте в вашем доме''Добрый день! Заказывайте клининг только у нас!''Всеволод Гаврилов'236 'gena@yandex.ru''zinaida@mail.ru''Профессиональные услуги клининга!''Добрый день! Заказывайте клининг только у нас!''Всеволод Гаврилов'237 'olga@yandex.ru''stepan@mail.ru''Фильтры воды для дома и дачи''Добрый день! Заказывайте фильтры воды только у нас!''Всеволод Гаврилов'24 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:08 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Осподи, что за фуфло?!! Код: sql 1. 2. 3. 4. ЗЫ. Я догадываюсь, что страдалец хочет "иного"... но суть та же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 07:13 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Vsevolod V, что б ты ещё скриптами всю эту "красоту" выкладывал, цены бы тебе не было :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. new_m_subject m_idm_addressFromm_addressTom_subjectm_textm_nameFromm_id_parentnС Новым 2018 Годом!1vova@yandex.ruvasya@mail.ruПоздравляем Вас с Новым Годом!Добрый день! Примите наши теплый поздравленияВсеволод Гаврилов221Поздравляем от всей души с Новым Годом2vova@yandex.ruivan@mail.ruПоздравляем Вас с Новым Годом!Добрый день! Примите наши теплый поздравленияВсеволод Гаврилов222От всей души поздравляем с Новым Годом3vova@yandex.rupetr@mail.ruПоздравляем Вас с Новым Годом!Добрый день! Примите наши теплый поздравленияВсеволод Гаврилов223Профессиональные услуги клининга!4gena@yandex.rumasha@mail.ruУслуги клининга в Санкт-ПетербургеДобрый день! Заказывайте клининг только у нас!Всеволод Гаврилов231Позаботьтесь о чистоте в вашем доме5gena@yandex.rudasha@mail.ruУслуги клининга в Санкт-ПетербургеДобрый день! Заказывайте клининг только у нас!Всеволод Гаврилов232Профессиональные услуги клининга!6gena@yandex.ruzinaida@mail.ruУслуги клининга в Санкт-ПетербургеДобрый день! Заказывайте клининг только у нас!Всеволод Гаврилов233Фильтры воды для дома и дачи7olga@yandex.rustepan@mail.ruФильтры воды для дома и дачиДобрый день! Заказывайте фильтры воды только у нас!Всеволод Гаврилов241 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2018, 13:33 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Задача сильно изменилась. Помогите, пожалуйста. Я вижу решение через использование inline фукнции, в которой будут рандомно выбираться и подменяться параметры в тексте. Но производительность, боюсь, будет низкой. Как можно решить это с помощью запрос? Мне необходимо сделать рандомизацию текстов писем в рассылках для тестирования их эфективности. Под рандомизацией текста письма подразумевается то, что в тексте используются параметры, например [param1], которые подменяются при отправке письма рандомно. Помогите, пожалуйста, как это можно решить наиболее оптимально с точки зрения производитеьности? Исходные данные: Код: 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. Моя задача в том, чтобы в результирующем наборе данных получить рандомно подмененные параметры теста. А если теста нет, то ничего не подменять. Результат может быть, например, таким: m_id m_addressFrom m_addressTo m_subject m_text m_nameFrom m_id_parent1 'vova@yandex.ru' 'vasya@mail.ru' 'С Новым 2018 Годом!' 'Здравствуйте! Примите наши теплые поздравления' 'Всеволод Гаврилов' 222 'vova@yandex.ru' 'ivan@mail.ru' 'Поздравляем от всей души с Новым Годом' 'Здравствуйте! От весго нашего коллектива поздравляю Вас с Новым Годом!' 'Всеволод Гаврилов' 223 'vova@yandex.ru' 'petr@mail.ru' 'От всей души поздравляем с Новым Годом' 'Доброго времени суток! От весго нашего коллектива поздравляю Вас с Новым Годом!' 'Всеволод Гаврилов' 224 'gena@yandex.ru' 'masha@mail.ru' 'Профессиональные услуги клининга!' 'Добрый день! Профессиональные услуги клининга только у нас!' 'Всеволод Гаврилов' 235 'gena@yandex.ru' 'dasha@mail.ru' 'Профессиональные услуги клининга!' 'Добрый день! Профессиональные услуги клининга только у нас!' 'Всеволод Гаврилов' 236 'gena@yandex.ru' 'zinaida@mail.ru' 'Профессиональные услуги клининга!' 'Добрый день! Заказывайте клининг только у нас!' 'Всеволод Гаврилов' 237 'olga@yandex.ru' 'stepan@mail.ru' 'Фильтры воды для дома и дачи' 'Добрый день! Заказывайте фильтры воды только у нас!' 'Всеволод Гаврилов' 24 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 15:33 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Vsevolod V, на SQL2016+ можно использовать FORMATMESSAGE(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 18:30 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Vsevolod V, Код: 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. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 18:38 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Исправленный вариант Код: 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. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 18:50 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
invm, ну вы как зафигачите так зафигачите... кто это кроме вас сопровождать сможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 19:03 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
invm, Нетривиальное интересное решение. Спасибо большое. Чтобы сопровождать, конечно, придется поломать голову) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 19:32 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовVsevolod V, на SQL2016+ можно использовать FORMATMESSAGE(). Можете, пожалуйста, поподробнее, почему это решение подойдет? Не ясно следующее. Фнкция прнимает аргументом param_value, который: 1. имеет отношение 1 к 1 с заполнителем значения, а надо 1 ко многим 2. Имеет ограничение в 20 значений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 19:48 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Владимир Затуливетеркто это кроме вас сопровождать сможет? Vsevolod VЧтобы сопровождать, конечно, придется поломать голову)Тут нет ничего экстраординарного. Достаточно вывести промежуточные результаты, чтобы понять как работает запрос. Vsevolod VМожете, пожалуйста, поподробнее, почему это решение подойдет? Не ясно следующее. Фнкция прнимает аргументом param_value, который: 1. имеет отношение 1 к 1 с заполнителем значения, а надо 1 ко многим 2. Имеет ограничение в 20 значенийFORMATMESSAGE для вашей задачи не подходит. Вы не сможете вызвать функцию в одном запроск с разным количеством аргументов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 20:33 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
invm, Все понял. Еще раз спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2018, 21:46 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Напрягите фантазийный орган, компаньерос. Шаблон ведь ничего не стоит поправить. Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:52 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовШаблон ведь ничего не стоит поправить.Может уже перейдете от теории к практике? И покажете нам как на исходных данных из 21652174 с помощью FORMATMESSAGE получить результат, показанный там же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 12:20 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
invm, для той структуры справочников не подойдёт, конечно. Но справочники же можно изменить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 16:51 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовНо справочники же можно изменить?А так же зафиксировать количество, порядок и смысл параметров в шаблоне? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 17:10 |
|
||
|
Помогите с запросом, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Пятничный quiz! Как вам такой вариант? Разбито на модули (функции), сопровождать проще намного будет думаю. Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 21:48 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39693081&tid=1689210]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 312ms |

| 0 / 0 |
