Здравствуйте, участники форума.
Прошу у Вас помощи в составлении SQL запроса.
Задача выглядит так:
1)Есть таблица Students.
В ней, среди прочих полей, есть поле StdID - int - ключевое поле таблицы.
2)Есть таблица Results.
с полями
ResID - int (ключевое поле таблицы),
StudentID - int (связь с полем StdID таблицы Students),
ResNumber - int,
ResType - varchar(10) (данное поле может принимать значения 'Тип-1' или 'Тип-2'),
3)Сама связь данных между таблицами выглядит так:
Одна строка с ключом StdID в таблице Students может быть связана:
- c одной строкой в таблице Results со значением 'Тип-1' в поле ResType,
- c одной строкой в таблице Results со значением 'Тип-2' в поле ResType,
- c двумя строками в таблице Results со значениями 'Тип-1' и 'Тип-2' в поле ResType,
- или вообще не иметь связанных строк в таблице Results.
4)Необходимо получить результат:
StudentID - StudentID из таблицы Students
FullResult - поле varchar(), вычисляемое по таблице Rusults и состоящее из двух слагаемых:
FullResult = '№'+Number(строки где ResType='Тип-1')+' Тип-1' +
'№'+Number(строки где ResType='Тип-2')+' Тип-2'
если для конкретного StudentID строки сResType = 'тип-1' нет, то первая часть слагаемого отсутствует,
если для конкретного StudentID строки сResType = 'тип-2' нет, то вторая часть слагаемого отсутствует,
если для конкретного StudentID строк сResType = 'тип-1' и 'тип-2' нет, то FullResult = NULL.
Прошу у Вас помощи в составлении SQL запроса.
Задача выглядит так:
1)Есть таблица Students.
В ней, среди прочих полей, есть поле StdID - int - ключевое поле таблицы.
2)Есть таблица Results.
с полями
ResID - int (ключевое поле таблицы),
StudentID - int (связь с полем StdID таблицы Students),
ResNumber - int,
ResType - varchar(10) (данное поле может принимать значения 'Тип-1' или 'Тип-2'),
3)Сама связь данных между таблицами выглядит так:
Одна строка с ключом StdID в таблице Students может быть связана:
- c одной строкой в таблице Results со значением 'Тип-1' в поле ResType,
- c одной строкой в таблице Results со значением 'Тип-2' в поле ResType,
- c двумя строками в таблице Results со значениями 'Тип-1' и 'Тип-2' в поле ResType,
- или вообще не иметь связанных строк в таблице Results.
4)Необходимо получить результат:
StudentID - StudentID из таблицы Students
FullResult - поле varchar(), вычисляемое по таблице Rusults и состоящее из двух слагаемых:
FullResult = '№'+Number(строки где ResType='Тип-1')+' Тип-1' +
'№'+Number(строки где ResType='Тип-2')+' Тип-2'
если для конкретного StudentID строки сResType = 'тип-1' нет, то первая часть слагаемого отсутствует,
если для конкретного StudentID строки сResType = 'тип-2' нет, то вторая часть слагаемого отсутствует,
если для конкретного StudentID строк сResType = 'тип-1' и 'тип-2' нет, то FullResult = NULL.