|
|
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
Привет, покритикуйте запрос, вы же это любите =). Нужно сделать запрос для отчета по вакцинации, поля(прививка|пациентов всего|пациентов привито|пациентов не привито|процент привитых|колво медотводов с кодами 1-6|медотвод с кодом 1... медотвод с кодом 13) теперь самое интересное: 1: запрос должен быть отсортирован в заданном порядке, но никакого критерия по которому можно было бы отсортировать нет(просто эта прививка первая эта вторая и т.д. в других отчетах порядок меняется)! 2: Данные по 2,3,4,5 полям считаются в зависимости от прививки, для прививки с кодом 1 интересуют случаи если Дата рождения пациента + 30 дней входит в заданный диапазон плановых дат plan_date, для прививок 2,3,4 дата рождения+3м 29дн, и т.д. сделал вот так: Код: 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. P.S. Не знаю как табличку в сообщение вставлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 17:33:42 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
barrac Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Феерично. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 17:44:32 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
очень долго думал)))) но сортировка: по алфавиту-не катит, по возрасту - не катит, какое нибудь доп поле в таблице(для конкретного отчета?) - не катит! кол-во прививок в этом отчете строго 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 17:53:18 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
barrac, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. аналогично (если конечно тип поля int) Код: sql 1. если же pr.code сам по себе ограничен, то вообще нет смысла извращаться Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 18:10:46 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 18:32:10 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
baracсортировка: по алфавиту-не катит, по возрасту - не катит, Не катится - кантуй. Убери вообще order by и будет тебе счастье. Или потребуй развернуть слово "заданный порядок". Симонов Денисесли же pr.code сам по себе ограничен Посмотри на условие во where. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 19:36:48 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
что-то не подумал, в первом поле неудачный пример: на самом деле там: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. pr.code - это прививка которая мне нужна, а then 1...15 - это порядковый номер при сортировке. так что: Код: sql 1. такая сортировка по коду pr.code это не то что мне нужно, а первым полем и order by я соответственно и добиваюсь нужной мне сортировки. pr.code - это поле с авто-инкрементом по нему я обращаюсь к нужно вакцине, и соответственно изменив 10 строчку кода when pr.code=10 then 10 на when pr.code=55 then 10, я изменю на 10 строчке прививку с 10 на 55 авторпотребуй развернуть слово "заданный порядок". это к сожалению походит на, "дайте мне задание которое я знаю как делать", и к сожалению это тоже не вариант. А мой пример работает)) просто интересует кто как бы это сделал по другому =) P.S. FireBird 2.5, запрос вызывается из FastReport. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 20:57:50 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
Как тут отредактировать свое сообщение?)) а то опять масло масленое получилось. автори соответственно изменив 10 строчку кода when pr.code=10 then 10 на when pr.code=55 then 10, я при выводе результата изменю на 10 строчке прививку с 10 на 55 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 21:03:30 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
barrac, В таком случае лучше завести отдельное поле под порядок сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 21:04:03 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
такая мысль у меня была до того как я открыл второй отчет )) первый отчет: 1.БЦЖ 2.V1 Коклюш 3.V1 Дифтерия 4.V1 Полиомелит 5.V2 Коклюш 6.V2 Дифтерия 7.V2 Полиомелит 8.V3 Гепатит 9.V1 Корь второй отчет: 1.V1 Коклюш 2.V2 Коклюш 3.V1 Дифтерия 4.V2 Дифтерия 5.V1 Полиомелит 6.V2 Полиомелит 7.V3 Гепатит 8.V1 Корь Ни по алфовиту, ни по номеру вакцинации а есть еще ревакцинации R1... отсортировать будет неправильно а делать 1 доп поле не получится, а 100 допполей для каждого отчета - просто маразм ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 21:24:15 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
Но сначала всё же определиться: порядок "определённый" кем, где и как. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 21:25:53 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
barrac, смотря как делать. Если в лоб то конечно 100 полей получится. Но ведь есть вариант размещения порядка в отдельной табличке с доп. полем отвечающим за номер отчёта. Тогда нужно уже не 100 полей а три (ваш код, порядок, код отчёта), а количеcтво записей ~15*100. Зато вы всегда можете поменять порядок вывода без переписывания запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 21:42:42 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, коварный вопрос, так и вытягивающий на "ОПРЕДЕЛЕННУЮ" сортировку по полям, хорошо, полезем в медицину(но тут я уже не очень силен и не факт что все правильно понимаю=). 1.Есть такое понятие - ДЕКРЕТИРОВАННЫЙ ВОЗРАСТ, в нем есть 4 рубежа,30 дней, 3 месяца 29 дней, 12 месяцев, 24 месяца. 2.Есть такой документ - Национальный календарь вакцинации, где прописаны сроки каждой прививки от даты рождения, но их строго не придерживаются, потому что пациент может не прийти отказаться и т.п., поэтому где то есть еще толи рекомендация толи еще что-то в которой тоже прописаны сроки прививок, но уже не от даты рождения а от родительской прививки. получается что в 1 отчете сортировка частично проходит по рекомендациям календаря, это мои догадки в рамках одного типа прививок т.к. V3 делается позже V2 делается позже V1, кстати когда этот срок прописан одинаково 6 месяцев например для, 3 вакцин, они все равно сортируются по "неписанному правилу раньше-позже", а не по алфавиту. во 2 отчете, получается берется 1 прививка и сортируется по типу(вначале вакцинации -V потом ревакцинации -R) потом по алфавиту(справедливо для первых трех прививок) дальше не знаю, но знаю что самая первая прививка идет в середине, а отчет начинается со 2 привики(ее V1,V2,V3) потом 3 прививка и ее дочерние, потом 4 прививка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 22:12:27 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
barracполезем в медицину Не надо лезть в медицину. Надо пойти к заказчику и вытрясти из него эту информацию в письменной форме. Любыми доступными методами. Потому что если её не может сообщить непосредственный постановщик задачи, это не значит что такая информация вообще не существует. ОФФ: Я помню как пару месяцев набивал в программу справочные таблицы, а потом "неожиданно" обнаружилось, что эти таблицы составляются исключительно для простоты восприятия технологами по определённой, пусть и эмпирической, формуле. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 22:50:43 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОФФ: Я помню как пару месяцев набивал в программу справочные таблицы, а потом "неожиданно" обнаружилось, что эти таблицы составляются исключительно для простоты восприятия технологами по определённой, пусть и эмпирической, формуле. Как это? За всю Одессу не скажу, но IIRC технологи не полезут в ПО как в справочник, если это не их "рабочая среда". А если "рабочая среда", то спраочники им будут нужны далеко не только для "вспомнить". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 01:19:46 |
|
||
|
Покритикуйте запрос
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамКак это? За всю Одессу не скажу, но IIRC технологи не полезут в ПО как в справочник Эта программа рассчитывала режимы резания (или ещё какую-то подобную фигню) за технолога. Там формула с несколькими эмпирическими коэффициентами, которые при ручном расчёте берутся из справочников. И чтобы автоматизировать это дело, я эти справочники вбивал. Как оказалось - зря. Два месяца работы (а в клавиши я на первом курсе тыкал гораздо медленнее чем сейчас) псу под хвост. Только из-за того, что не допросили специалистов с пристрастием. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 12:53:17 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38403190&tid=1564315]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
218ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 541ms |

| 0 / 0 |
