|
|
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Создал такую конструкцию: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Мне было дано такое условие: Расчет Fudt – Дата первого использования: Из таблицы tffar051 взять дату первого использования в соответствии с условиями: Если tffar051. ordt<> 01.01.4712, то берем tffar051. Ordt Если tffar051. Ordt= 01.01.4712, то берем tffar051. Fudt Если tffar051. Ordt= 01.01.4712 и tffar051. Fudt = 01.01.4712 и tffar051. depc= «Б2013», то ставим 01.01.2013 Иначе 01.01.2012. Где tffar051.fabc= « 001» или tffar051.fabc= « 004»; tffar051.fasc= Zdfar202.fasc. Для инв. номеров, начинающихся на «П» взять 01.01. ||Zdfar202.year||. Не могу разобраться что написать в THEN "sum(case when (b.fabc=' 001' or b.fabc=' 004') and b.fasc=a.fasc then else 0" Может кто подсказать, что не так я делаю, может неверно реализовываю условие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 08:23 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_Don, у тебя в этой строчке авторCASE WHEN t$ordt<>to_date('01.01.4712','dd.m.m.yyyy') THEN t$ordt точка в дате "m.m" лишняя. Может из-за этого) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 09:16 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_DonГде tffar051.fabc= « 001» или tffar051.fabc= « 004»; tffar051.fasc= Zdfar202.fasc. WHERE Tihiy_DonЕсли tffar051. Ordt= 01.01.4712, то берем tffar051. Fudt Если tffar051. Ordt= 01.01.4712 и tffar051. Fudt = 01.01.4712 и tffar051. depc= «Б2013», то ставим 01.01.2013 Условия пересекаются. Ставь первым более "узкое". Код: plsql 1. 2. 3. Что ты ожидаешь получить от суммы дат с числами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 09:24 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Ramstein, Спасибо большое, моя невнимательность. env, Сейчас попробую. Сумму делал по аналогии с предыдущим примером, наверное, зря. Спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 09:39 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#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. 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. Ребят, а вот весь запрос с моим дописанным условием. Не могу разобраться, через кейсы написать новый селект, или же дописать в существующий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 09:45 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_DonНе могу разобраться, через кейсы написать новый селект, или же дописать в существующий? Определенно, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 10:46 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
AnSi_Sr, Определённо новый селект или дописать в существующий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 10:48 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
envЧто ты ожидаешь получить от суммы дат с числами? Код: plsql 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. 'ГЏ' -один символ? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 11:54 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_Don Код: sql 1. 2. 3. 4. 5. 6. 7. Ребят, а вот весь запрос с моим дописанным условием. Не могу разобраться, через кейсы написать новый селект, или же дописать в существующий? мож Код: plsql 1. 2. 3. 4. 5. 6. 7. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 11:59 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
автор'ГЏ' -один символ? Прошу прощения, так скопировалось из навигатора. Там должно быть where substr(trim(t$fasc),1,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. 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. Не могу разобраться куда вставить условия по данным требования: авторРасчет Fudt – Дата первого использования: Из таблицы tffar051 взять дату первого использования в соответствии с условиями: Если tffar051. ordt<> 01.01.4712, то берем tffar051. Ordt Если tffar051. Ordt= 01.01.4712, то берем tffar051. Fudt Если tffar051. Ordt= 01.01.4712 и tffar051. Fudt = 01.01.4712 и tffar051. depc= «Б2013», то ставим 01.01.2013 Иначе 01.01.2012. Где tffar051.fabc= « 001» или tffar051.fabc= « 004»; tffar051.fasc= Zdfar202.fasc. Для инв. номеров, начинающихся на «П» взять 01.01. ||Zdfar202.year||. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 12:00 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_DonНе могу разобраться куда вставить условия по данным требования: я так понимаю Код: plsql 1. 2. 3. 4. сначала реализуйте условия которые 100% понимаете, потом добавите другие ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 12:10 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_Don, Ваш запрос да причесать бы, пожалуй начну Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 12:42 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
авторВаш запрос да причесать бы, пожалуй начну Это запрос, я его потом буду переносить в пакет, там у меня переменные отвечающие за даты t$year. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 13:01 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, выше вашего сообщения я немного изменил запрос и выложил его. Там я убрал свои кейсы. Попробую начать по частичкам, как сказал товарищ выше с fudt. Спасибо, что помогаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 13:04 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#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. 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. Всёравно ошибка, кейссы прописал в подвыборе из таблицы 051. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 11:52 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_Don, Вы слуаете замечания которые Вам пишут, или пытаетесь уговорить Oracle что Вы написали что-то адекватное? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. distinct - можно не писать ... его сделает UNION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 12:37 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_Don, И еще 1 результат не заметил сразу Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Т.к. case проверяет с верху вниз условия, то найдите правильное место для условия when (trim(t$fasc),1,1)='П' then to_date('01.01.2013','dd.mm.yyyy') в Вашем написании оно тоже никогда не отработает ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 12:43 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
С помощью ваших подсказок (спасибо всем кто помогал начинающему) я смог всё-таки сформировать запрос. Огромное спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 13:18 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
авторdistinct - можно не писать ... его сделает UNION А вот это, к сожалению, не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 13:21 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_Donавторdistinct - можно не писать ... его сделает UNION А вот это, к сожалению, не так. Вот те раз, обоснуй Я не понял, в какой части я, по Вашему, ошибся UNION не сделает distinct? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 13:43 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Коллега, который меня обучает утверждает что динстинкт необходим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 14:19 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_DonКоллега, который меня обучает утверждает что динстинкт необходим.Обоим RTFM http://www.oracle.com/pls/topic/lookup?ctx=db112&id=SQLRF52345]The UNION [ALL], INTERSECT, MINUS Operators (FAQ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 15:05 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
Tihiy_DonКоллега, который меня обучает утверждает что динстинкт необходим. Возможно Ваш коллега имеет ввиду distinct верхнего уровня? select /*+ ORDERED */ distinct в сборке же таблиц Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. union все равно будет делать дистинкт для набора данных.... А возможно Ваш коллега путает union all и union Можете у него попросить пояснить почему, если он Вас обучает ... во всяком случае Вам будет полезно понимать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 15:05 |
|
||
|
Конструкция case
|
|||
|---|---|---|---|
|
#18+
MaximaXXLdistinct - можно не писать ... его сделает UNIONСделать-то сделает, но "не писать" нельзя для синтаксической симметрии и во избежание гадания при чтении чужого/подзабытого кода, подразумевал ли автор неявный distinct или ступил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 15:19 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39545201&tid=1885003]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 474ms |

| 0 / 0 |
