|
Как написать запрос? сопоставить две таблицы | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
25.08.16
✎
11:48
|
Суть:
есть исходная таблица - услуги к выполнению есть вторая таблица - услуги выполненные с датой услуги в первой таблице могут дублироваться вторая таблица заполняется по мере выполнения задача - сопоставить две таблицы, что бы знать какая услуга когда выполнена (или пока еще не выполнена) т.е. имеем таблица 1: УЗИ сосудов ноги (одной ноги - левой или правой) УЗИ сосудов ноги УЗИ почек таблица 2: УЗИ сосудов ноги 08:00 УЗИ сосудов ноги 12:00 в итоге получить: УЗИ сосудов ноги 08:00 УЗИ сосудов ноги 12:00 УЗИ почек |
|||
1
Горогуля
25.08.16
✎
11:49
|
правое соединение
|
|||
2
RomaH
naïve
25.08.16
✎
11:50
|
(1) а чего не левое? - ну как бы понятно что соединение - но с каким условием и сколько
|
|||
3
Горогуля
25.08.16
✎
11:52
|
одно. по номенклатуре
|
|||
4
Это_mike
25.08.16
✎
11:52
|
(1) с чего?
(0)http://i.stack.imgur.com/gVOZ1.png |
|||
5
Garykom
гуру
25.08.16
✎
11:53
|
(0) Если во 2-й таблице выполнили с датой, то чего нету в 1-й?
|
|||
6
RomaH
naïve
25.08.16
✎
12:01
|
(5) она не попадет в итог
|
|||
7
RomaH
naïve
25.08.16
✎
12:03
|
(3) и что в итоге получится
мне надо что бы первая строка получила время 8:00 а вторая 12:00 а если появится третья нога - то NULL |
|||
8
RomaH
naïve
25.08.16
✎
12:03
|
при одном соединении я получу в итоге 4 записи
|
|||
9
RomaH
naïve
25.08.16
✎
12:06
|
соединить обе таблицы с числами - пронумеровать
и соединять по номеру во - спасибо - вроде рабочая идея |
|||
10
RomaH
naïve
25.08.16
✎
12:49
|
вот так:
ВЫБРАТЬ ЗаказПациентаМедицинскиеУслуги.НомерСтроки, ЗаказПациентаМедицинскиеУслуги.МедицинскаяУслуга, КОЛИЧЕСТВО(ЗаказПациентаМедицинскиеУслуги1.МедицинскаяУслуга) КАК МедицинскаяУслуга1 ПОМЕСТИТЬ втСтрокиЗаказа ИЗ Документ.ЗаказПациента.МедицинскиеУслуги КАК ЗаказПациентаМедицинскиеУслуги ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПациента.МедицинскиеУслуги КАК ЗаказПациентаМедицинскиеУслуги1 ПО ЗаказПациентаМедицинскиеУслуги.Ссылка = ЗаказПациентаМедицинскиеУслуги1.Ссылка И ЗаказПациентаМедицинскиеУслуги.МедицинскаяУслуга = ЗаказПациентаМедицинскиеУслуги1.МедицинскаяУслуга И ЗаказПациентаМедицинскиеУслуги.НомерСтроки >= ЗаказПациентаМедицинскиеУслуги1.НомерСтроки ГДЕ ЗаказПациентаМедицинскиеУслуги.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ЗаказПациентаМедицинскиеУслуги.НомерСтроки, ЗаказПациентаМедицинскиеУслуги.МедицинскаяУслуга ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаписьНаПрием.ДатаПриема, ЗаписьНаПрием.МедицинскаяУслуга, КОЛИЧЕСТВО(ЗаписьНаПрием1.МедицинскаяУслуга) КАК МедицинскаяУслуга1 ПОМЕСТИТЬ втСтрокиЯвок ИЗ РегистрСведений.ЗаписьНаПрием КАК ЗаписьНаПрием ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗаписьНаПрием КАК ЗаписьНаПрием1 ПО ЗаписьНаПрием.МедицинскаяУслуга = ЗаписьНаПрием1.МедицинскаяУслуга И ЗаписьНаПрием.ЗаказПациента = ЗаписьНаПрием1.ЗаказПациента И (ЗаписьНаПрием.ЗаказПациента = &Ссылка) И ЗаписьНаПрием.ДатаПриема >= ЗаписьНаПрием1.ДатаПриема СГРУППИРОВАТЬ ПО ЗаписьНаПрием.МедицинскаяУслуга, ЗаписьНаПрием.ДатаПриема ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втСтрокиЗаказа.НомерСтроки, втСтрокиЗаказа.МедицинскаяУслуга, втСтрокиЗаказа.МедицинскаяУслуга1, втСтрокиЯвок.ДатаПриема ИЗ втСтрокиЗаказа КАК втСтрокиЗаказа ЛЕВОЕ СОЕДИНЕНИЕ втСтрокиЯвок КАК втСтрокиЯвок ПО втСтрокиЗаказа.МедицинскаяУслуга = втСтрокиЯвок.МедицинскаяУслуга И втСтрокиЗаказа.МедицинскаяУслуга1 = втСтрокиЯвок.МедицинскаяУслуга1 |
|||
11
Это_mike
25.08.16
✎
12:54
|
вы там за наркотики работаете, чтоль?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |