|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.08.2012, 22:18 | #1 |
Форумчанин
Регистрация: 08.01.2011
Сообщений: 102
|
MS SQL SERVER 2005 sql querry
Здравствуйте все все все у меня вопрос к вам связанный с sql запросом
у меня есть две таблицы D и P таблица D- мастер А P детальная связь реализована по двум полям D.Код=P.Pkey отношение один ко многим вот. короче мне из двух таблиц нужно получить таблицу с одним столбцом (полем) а результаты в нем должны быть вот какие сначала идет строка из поля 'Договор' потом ниже него под ним идут строки из таблицы P 'Наименование' то есть как вы поняли из отношения следует что к одному договору (строке) относится несколько строк с наименованием (отношение один ко многим) поэтому в таблице должно получиться с начало договор потом несколько строк с наименованием потом опять но уже следующая строка из таблицы D то есть следующий договор а за ним следующие строки с наименованием из таблицы P и так далее . вот а как это сделать с помощью sql в Managment Studio я не знаю вот. Подскажите пожалуйста ну или хотя бы намекните ?? |
19.08.2012, 22:34 | #2 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
можно использовать компонент TDBGridEh из набора EhLib . Последние версии это умеют ... правда прийдется повозиться с запросами и настройками (там это делается через TMemTableEh)
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... |
19.08.2012, 23:11 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
20.08.2012, 16:10 | #4 |
Форумчанин
Регистрация: 08.01.2011
Сообщений: 102
|
|
20.08.2012, 19:10 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Открой его добавь в него две таблицы, перетащи из одной поле ключа на другую в то место, с которым это поле будет связано, укажи какие поля выводить и получишь запрос.
I'm learning to live...
|
|
22.08.2012, 21:47 | #6 |
Форумчанин
Регистрация: 08.01.2011
Сообщений: 102
|
чета не помог мне построитель запросов он там примитивный как в аксэсе напишите пожалуйста хотя бы примерный sql запрос ??
|
22.08.2012, 22:05 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
Если грид поддерживает группировку (типа DevGrid или EhGrid) то получишь на экране что-то на подобие многоэтажки.
I'm learning to live...
|
|
23.08.2012, 20:28 | #8 | |
Форумчанин
Регистрация: 08.01.2011
Сообщений: 102
|
Цитата:
А в продвинутых Дельфийских гридах указывай поле Договор для группировки, а Наименование как деталь группы. Если грид поддерживает группировку (типа DevGrid или EhGrid) то получишь на экране что-то на подобие многоэтажки.[/QUOTE] а чё это за компоненты такие скинь исходничек хоть самый простенький (типа DevGrid или EhGrid) Последний раз редактировалось Stilet; 23.08.2012 в 22:05. |
|
23.08.2012, 22:35 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ты не понимаешь саму суть задачи.
Ты хочешь заставить источник данных формировать визуальный вид, в то время когда ему этого делать не полагается никак Данные не обязательно строить в запросе так как ты их видишь на экране. Группировать же уже обязан компонент-отображатель, но ему совсем не обязательно скармливать именно так как ты проиллюстрировал. Более того - многие гриды, способные группировать данные подавятся твоей реализацией именно потому что ты требуешь у него групировку по критерию, но этого критерия не даешь. Как раз в твоем случае делают именно два поля Первое ключевое для группы (имя группы, код или еще что-то, что способно объединять записи), и второе поле, которое содержит данные, принадлежащие группе, указанной в первом поле. Так как хочешь ты... Скажем так - птичка обломинго не дремлет. Впрочем раз уж всетки твоя олигурия давит на моск вот тебе к раздумью пример хранимой процедуры, которая должна отфетчить запрос так чтоб выстроить группы с "шапками" именно в качестве возвращаемой таблицы: Код:
P.S. Чуть не забыл. Уверен что ты не догадаешься что вызывать нужно так: Код:
I'm learning to live...
|
23.08.2012, 22:47 | #10 |
Форумчанин
Регистрация: 08.01.2011
Сообщений: 102
|
Супер
Слушай спасибо тебе огромное за процедуру нет слов я бы сам не придумал бы обязательно постараюсь в ней разобраться . Но может ты и прав пусть будет два столбца только тогда подскажи мне как луче сделать так что бы : как ты видишь из рисунка там просто в поле договор идут повторения ну название договора повторяются ты не знаешь как просто удалить эти повторяющиеся названия ну просто чтобы оставалось одно название договора потом пустые ячейки на против группы к этому договору а потом уже следующий договор и так далее .?!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MS SQL SERVER 2005 | reihtmonbern | БД в Delphi | 6 | 31.07.2012 16:57 |
база ms sql server 2005 | zazic2p | SQL, базы данных | 0 | 05.10.2011 17:31 |
MS SQL 2005 Server регистрозависимым | Cawboy | БД в Delphi | 0 | 26.03.2010 15:45 |
Вставка БД с SQL server 2005 | фЁдОр | SQL, базы данных | 17 | 20.11.2007 17:15 |