powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Посоветуйте с запросом, пожалуйста!
11 сообщений из 11, страница 1 из 1
Посоветуйте с запросом, пожалуйста!
    #32071787
Две таблицы, связь один-ко-многим, надо сконструировать VIEW чтобы показывал запись из главной плюс поле из подчиненной первой подходящей записи. Подробнее:

табл. Акт (ID*, Номер)
табл. Люди (ID*, АктСсылка, Фамилия)

К акту относятся несколько людей. VIEW должен показывать только одну строку:
View1 (Акт.ID, Номер, Фамилия)
причем 'Фамилия' - первый людь из данного акта.

В идеале вижу вот такой запрос:

SELECT Акт.ID, Акт.Номер, p.Фамилия
FROM Акт INNER JOIN
(SELECT Люди.АктСсылка, Люди.Фамилия FROM Люди ORDER BY Люди.ID) p
ON Акт.ID=p.АктСсылка

но он не работает... MSSQL7 (в конструкторе VIEW выдает ошибку что-то типа Люди не может быть классификатором для поля)
Я не шибко силен в SQL но я не нашел правила, которое нарушалось бы моим запросом.
Может, кто подскажет, в чем я неправ? Может, кто подскажет другой вариант решения?
Буду премного :-)
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32071791
Flint-San
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT
A.ID,
A.Номер,
P.Фамилия
FROM
Акт as A INNER JOIN Люди AS P ON A.ID=P.АктСсылка
WHERE
P.ID = (SELECT Min(X.ID) FROM Люди AS X WHERE X.АктСсылка=A.ID)
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32071793
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Связь n:n организуется введением еще одной таблицы из внешних ключей - где у Вас эта таблица
Приведите надор данных
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32071800
блин я пропустил, там вложенный запрос начинается так:
(SELECT TOP 1 ...)
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32071804
To funikovyuri:
>>Связь n:n организуется ...

Где вы увидели связь многие-ко-многим? Извините, но Вы уверены, что правильно поняли моё описание?
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32071872
av2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо примерно так:
SELECT [Акт].ID, [Акт].[Номер], (SELECT TOP 1 [Фамилия] FROM [Люди] WHERE [АктСсылка] = [Акт].ID ORDER BY [Люди].ID) AS Фамилия
FROM Акт
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32071935
To av2000:
Спасибо, я так пробовал, но из табл. Люди мне нужно не только Фамилию, но много других полей. Т.е. надо её всё равно соединять с табл. Акт либо целиком, либо как результат SELECTa.
Думаю дальше. Вариант Flint-San подходит наиболее, только в вопросе производительности он как-то ... тяжеловат...
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32071952
av2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда так:
SELECT [Акт].ID, [Акт].[Номер], (SELECT TOP 1 [Люди].ID FROM [Люди] WHERE [АктСсылка] = [Акт].ID ORDER BY [Люди].ID) AS l_id, l.Фамимлия, l.Адрес ...
FROM Акт INNER JOIN Люди AS l ON l_id = l.[Люди].ID
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32072309
Ши-кар-но!!!
Только я ещё не пробовал, щас попробую. Но мысль - просто атас! Спасибо!
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32072359
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык не получится так

Поле l_id не будет видно в условии INNER JOIN Люди AS l ON l_id = l.[Люди].ID
...
Рейтинг: 0 / 0
Посоветуйте с запросом, пожалуйста!
    #32072369
av2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В конце маленькая ошибочка,нужно так:
SELECT [Акт].ID, [Акт].[Номер], (SELECT TOP 1 [Люди].ID FROM [Люди] WHERE [АктСсылка] = [Акт].ID ORDER BY [Люди].ID) AS l_id, l.Фамимлия, l.Адрес ...
FROM Акт INNER JOIN Люди AS l ON l_id = l.ID
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Посоветуйте с запросом, пожалуйста!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]