Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые коллеги! Требуется сделать отчет на основе выборки, помогите пожалуйста, своего ума не хватает... Исходные данные в SQL скрипте "для запроса.sql", они имеют вид: Код: sql 1. 2. 3. 4. 5. 6. Результат как надо - картинка выборки ниже. Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2017, 18:38 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Вот такой результат хочется получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2017, 18:40 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
белые клетки это просто не вписала в эту таблицу, а вот по гусям например все точно ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2017, 18:44 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Боюсь показаться не оригинальным, но это задаче клиентского репортера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2017, 23:59 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Mike_za, в нем и делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2017, 09:54 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Ребят, вот такой запрос получился, структура такая какая нужна! Только: 1. Тут код ну... очень не красивый!!! 4 раза обращаюсь к таблице. 2. И тут не верная выборка, т.е. Гуси только в Твери, а они в Москве появляются из за LEFT JOIN (не выбираются записи с null). В моем случае наверное надо инструкцию "LEFT JOIN AND RIGTH JOIN" )))))))... Надо как то по правильному фильтровать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2017, 13:58 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Александра77, Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2017, 16:12 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Александра77, Но лучше в каком то средстве для создания репортов, они умеют делать такие сложные PIVOT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2017, 16:13 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Алексей, спасибо Вам огромное! Так точно и надо! А вот про отчеты можно вопрос, например что использовать? Можно просто название - догуглю. Первый раз про них слышу, обычно QA-Copy-Excel-Paste да и всё. Можно всё в эксел сразу - да вот строк гораздо больше в выборке, чем Excel может принять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2017, 17:36 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Александра77А вот про отчеты можно вопрос, например что использовать? Так вы же используете какой то? Вы же писали:Александра77Mike_za, в нем и делаю. Разные есть. Я почти не делаю отчётов, но вот немного использовал SSRS. Раньше все пользовались Crystal Reports, знаменитая система. Наверное, есть ещё куча хороших систем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2017, 09:30 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
А, такие сложные нет, не использую, думала про Microsoft Query Analyzer. Вопрос по оптимизации, или про другую реализацию! Вот получилось так с PIVOT, а как вот с ним ещё бы добавить столбиков по сумме? Эта команда поддерживает только одно поле с агр.функцией? Если да, то жаль, команда волшебная, ещё бы ей функционала! ))) Т.е. сейчас тут только "Количество" 4 столбика, надо ещё 4 по "Корм" и 4 по "Труд". "Недо-Оптимизация1" Код: 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. Вот такая "попытка" добавить столбики, но это не то совсем чувствую, да и строки повторяются. Надо командой PIVOT по "правильному" разложить! "Недо-Анти-Оптимизация2" Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2017, 21:42 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Александра77Вот получилось так с PIVOT, а как вот с ним ещё бы добавить столбиков по сумме? Эта команда поддерживает только одно поле с агр.функцией? Если да, то жаль, команда волшебная, ещё бы ей функционала! ))) Т.е. сейчас тут только "Количество" 4 столбика, надо ещё 4 по "Корм" и 4 по "Труд".К сожалению, PIVOT не умеет работать с несколькими агрегирующими функциями, т.е. с несколькими столбцами, поэтому я сразу и писал джойны. PIVOT - это по сути другая форма джойна самого с собой, но упрощённая, и, соответственно, не применимая для общего случая "разворачивания" таблицы. Однако можно это обойти остроумным применением UNPIVOT + PIVOT :-) Хочу только заметить, что обрабатываемые таким образом столбцы должны иметь один тип. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 10:42 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
alexeyvgОднако можно это обойти остроумным применением UNPIVOT + PIVOT :-) Хочу только заметить, что обрабатываемые таким образом столбцы должны иметь один тип. Алексей, спасибо вам огромное, по теме вопросов больше нет, благодаря вам! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 22:46 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
alexeyvgАлександра77Вот получилось так с PIVOT, а как вот с ним ещё бы добавить столбиков по сумме? Эта команда поддерживает только одно поле с агр.функцией? Если да, то жаль, команда волшебная, ещё бы ей функционала! ))) Т.е. сейчас тут только "Количество" 4 столбика, надо ещё 4 по "Корм" и 4 по "Труд".К сожалению, PIVOT не умеет работать с несколькими агрегирующими функциями, т.е. с несколькими столбцами, поэтому я сразу и писал джойны. PIVOT - это по сути другая форма джойна самого с собой, но упрощённая, и, соответственно, не применимая для общего случая "разворачивания" таблицы. Однако можно это обойти остроумным применением UNPIVOT + PIVOT :-) Хочу только заметить, что обрабатываемые таким образом столбцы должны иметь один тип. Код: 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. Пробовал делать по вашему шаблону, но что-то не клеится. Если не очень сложно, то просьба помочь развернуть таблицу. Не прокатило с датой, убрал её, но результата нужного не получил все равно, даже если выбирал все данные Int Вот тестовая таблица Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Собственно, в идеале нужно развернуть все столбцы, кроме sity, sityname. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 11:47 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
что должно получиться(поле nr чисто для служебных целей(сортировка) sity sityname date_opros_1 date_opros_2 kolvo_1_1 kolvo_1_2 kolvo_2_1 kolvo_2_2 id_1 id_2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 11:54 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Прогер_самоучкачто должно получиться(поле nr чисто для служебных целей(сортировка) sity sityname date_opros_1 date_opros_2 kolvo_1_1 kolvo_1_2 kolvo_2_1 kolvo_2_2 id_1 id_2извиняюсь, поправлю чуть-чуть sity sityname date_opros_1 date_opros_2 kolvo_1_1 kolvo_1_2 kolvo_2_1 kolvo_2_2 nr_1 nr_2id_1id_2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 12:17 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Прогер_самоучкаsity sityname date_opros_1 date_opros_2 kolvo_1_1 kolvo_1_2 kolvo_2_1 kolvo_2_2 nr_1 nr_2id_1id_2... зачем такие сложности ? Так, не вариант ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. sitysitynamedate_opros_1date_opros_2kolvo_1_1kolvo_1_2kolvo_2_1kolvo_2_2nr_1nr_21Москва2018-04-21 00:00:00.0002018-04-28 00:00:00.0006561010212Н.Н2018-04-21 00:00:00.0002018-04-28 00:00:00.00045451515213Уфа2018-04-21 00:00:00.0002018-04-28 00:00:00.000455441010214ЕКБ2018-04-21 00:00:00.0002018-04-28 00:00:00.0002233100100217Тверь2018-04-21 00:00:00.0002018-04-28 00:00:00.0006455545010021 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 20:12 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
courtПрогер_самоучкаsity sityname date_opros_1 date_opros_2 kolvo_1_1 kolvo_1_2 kolvo_2_1 kolvo_2_2 nr_1 nr_2id_1id_2... зачем такие сложности ? Так, не вариант ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. sitysitynamedate_opros_1date_opros_2kolvo_1_1kolvo_1_2kolvo_2_1kolvo_2_2nr_1nr_21Москва2018-04-21 00:00:00.0002018-04-28 00:00:00.0006561010212Н.Н2018-04-21 00:00:00.0002018-04-28 00:00:00.00045451515213Уфа2018-04-21 00:00:00.0002018-04-28 00:00:00.000455441010214ЕКБ2018-04-21 00:00:00.0002018-04-28 00:00:00.0002233100100217Тверь2018-04-21 00:00:00.0002018-04-28 00:00:00.0006455545010021 rn я как аз таким образом и промаркировал) Да, до такого просто и красивого решения я не додумался. Снимаю шляпу. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 21:46 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Я, честно говоря, не въезжаю почему условие Код: sql 1. вызывает ошибку(использую MS Maestro 17.6.0.1 ОшибкаПоставщик данных или другая служба вернули состояние E_FAIL Empty set (0.22 sec) Если указать Код: sql 1. то прокатывает, но это ошибочный результат. Хочется понять, почему обычное условие не возвращает результат, а вываливается с ошибкой.. З.Ы. Если использовать SSMS, то никаких ошибок не возникает и запрос отрабатывает на ура Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2018, 17:30 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Прогер_самоучка, Такое возможно, если тип битовый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2018, 23:50 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
Прогер_самоучка, по-поводу ошибки, - ничего не скажу, но, навсякий, запрос можно переписать на эквивалентный без self join-а и условия по константе в join-е (но, правда, с групп баем) Может такое это Маестро примет ... Типа этого: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 07:04 |
|
||
|
Одну выборку преобразовать в другую
|
|||
|---|---|---|---|
|
#18+
courtПрогер_самоучка, по-поводу ошибки, - ничего не скажу, но, навсякий, запрос можно переписать на эквивалентный без self join-а и условия по константе в join-е (но, правда, с групп баем) Может такое это Маестро примет ... Типа этого: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Этот вариант - супер. Ибо предыдущий выводил не все записи(из-за лефт джоина не было записей из правой таблицы, отсутствующие в левой) и пришлось union делать Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 10:21 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=152&tid=1689809]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 381ms |

| 0 / 0 |
