Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите срочно!!! ВЫБРКА пояснение
|
|||
|---|---|---|---|
|
#18+
У каждого больного несколько анализов, необходимо подсчитать сколько батериовыделителей, и сколько больных которые не выделяют батерии. Если существует хоть один + то он является бактериовыделителем, если все Negative то считатьчто он и не выделят батерии У меня 2 таблицы, в первой паспортные данные, диагноз и.тд. во второй храняться анализы (их может быть у каждого больного неограниченное количество), необходимо проверить по первым 3 анализам, сколько больных не выделяют бактерии, и сколько выделяют. Но надо подсчитать по количеству (+,++,+++), т.е если первые два анализа ++, а третий+++, то надо считать что он выделяет +++. Негативные у кого все 3 анализа negative. Table1 Surname name name1 id Абиев Магеррамали Магеррамали 123 Иванов Василий Дмитриевич 456 Семенов Евгений Андреевич 127 Щукин Александр Михайлович 588 Analis id result number 123 negative 1 123 + 2 123 ++ 3 456 negative 1 456 negative 2 456 negative 3 127 + 1 127 negative 2 127 + 3 588 negative 1 588 ++ 2 588 +++ 3 Необходимо чтобы подсчитало так С результатом negative 1 чел. (То.есть с id 456) с результатом + 1 чел (То.есть с id 127) с результатом ++ 1 чел (То.есть с id 123) с результатом +++ 1 чел (То.есть с id 58 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2002, 12:55 |
|
||
|
Помогите срочно!!! ВЫБРКА пояснение
|
|||
|---|---|---|---|
|
#18+
Совсем другое дело Идея в следующем: путем замены 'negative' на '-' можно добиться нужного порядка сортировки в подзапросе create table #table1(surname nvarchar(100), id int) insert into #table1 values(N'Абиев Магеррамали Магеррамалиевич', 123 ) insert into #table1 values(N'Иванов Василий Дмитриевич', 456 ) insert into #table1 values(N'Семенов Евгений Андреевич', 127 ) insert into #table1 values(N'Щукин Александр Михайлович', 588 ) create table #analis(id int, result varchar(20), number int) insert into #analis values(123, 'negative', 1) insert into #analis values(123, '+', 2) insert into #analis values(123, '++', 3) insert into #analis values(123, 'negative', 4) insert into #analis values(456, 'negative', 1) insert into #analis values(456, 'negative', 2) insert into #analis values(456, 'negative', 3) insert into #analis values(456, '+', 4) insert into #analis values(127, '+', 1) insert into #analis values(127, 'negative', 2) insert into #analis values(127, '+', 3) insert into #analis values(588, 'negative', 1) insert into #analis values(588, '++', 2) insert into #analis values(588, '+++', 3) select *, (select top 1 result from (select case result when 'negative' then '-' else result end as result from #analis c where c.id = a.id and number <= 3 ) as b group by result order by result desc) from #table1 a drop table #table1 drop table #analis ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2002, 16:52 |
|
||
|
Помогите срочно!!! ВЫБРКА пояснение
|
|||
|---|---|---|---|
|
#18+
никак не могу понять(такие все продвинутые)... ЗАЧЕМ ВРУЧНУЮ ДРОПАТЬ ВРЕМЕННУЮ ТАБЛИЦУ??? А ЕСЛИ ДРОПАТЬ ЕЕ ВРУЧНУЮ, ТО ЗАЧЕМ ДЕЛАТЬ ЕЕ ВРЕМЕННОЙ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2002, 19:36 |
|
||
|
Помогите срочно!!! ВЫБРКА пояснение
|
|||
|---|---|---|---|
|
#18+
2Tung Перемудрил немного, можно проще select *, (select top 1 result from #analis b where b.id = a.id and number <= 3 order by case result when 'negative' then '-' else result end desc) from #table1 a 2бывший конкретно в данном примере - для того, чтобы можно было запускать скрипт много раз в QA. Иначе придется проверять возможность создания таблицы в начале скрипта, а это более длинный код(временные таблицы в данном примере будут автоматически дропаться при закрытии коннекта, а не по окончании скрипта). Кроме того, IMHO есть такое понятие "культура программирования" - т.е. "намусорил" - убери и нечего надеяться на постороннего дядю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2002, 21:25 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32020219&tid=1824419]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 380ms |

| 0 / 0 |
