Жесткая проблема Sql Query с участием семейных отношений - PullRequest
1 голос
/ 30 октября 2009

У меня есть отношение ко многим таблицам, которое включает 2 логические таблицы.

Таблица записей, которая присоединяется к таблице отношений по primaryID. Второй экземпляр таблицы записей, который присоединяется к таблице отношений по ReciprocalID

Цель этого - показать семейные отношения в базе данных. Каждая первичная таблица записей имеет одну или несколько строк в реляционной таблице, которая показывает все другие семейные отношения этого человека в базе данных.

Мне было поручено составить список контактов, включающий отображение имен каждого из детей, которые посещают эту школу, а также их родителей и контактную информацию.

Я дошел до того, что смог показать детей под каждым родителем, но теперь мне нужно найти способ объединить их вместе.

Поскольку я не контролирую структуру этой базы данных (ее Education Edge 7), я создал отдельную базу данных, в которой хранятся мои запросы и представления для моих отчетов. Школа, для которой я делаю эту работу, имеет доступ только к CR 8.5.

Прямо сейчас у меня есть топ-группа в CR в качестве фамилии записываемой таблицы, моя вторая группа находится на полном имени записываемой таблицы. У меня есть подотчет, в который заносятся все записи о детях.

Я использовал случай, когда утверждение в моем основном представлении (описанном выше) преобразовало «дочь» и «сын» в ребенка и «мать» или «отец» в родителя.

Надеюсь, это слишком много. Если вам нужна дополнительная информация, просто спросите.

SELECT     dbo.vwEA7RelationshipsTableView.PRIMARYID,
             dbo.vwEA7RecordsTableView.LASTNAME AS PRIMARYLASTNAME,
            dbo.vwEA7RecordsTableView.FIRSTNAME AS PRIMARYFIRSTNAME,
             dbo.vwEA7RecordsTableView.NAMEFORDISPLAY AS PRIMARYNAME,
             CASE dbo.vwEA7RelationshipsTableView.PRIMARYDESC 
                WHEN 'Father' THEN 'Parent' 
                WHEN 'Mother' THEN 'Parent' 
                WHEN 'Son' THEN 'Child'
                 WHEN'Daughter' THEN 'Child'
                 ELSE dbo.vwEA7RelationshipsTableView.PRIMARYDESC 
                END AS PRIMARYDESC,
            dbo.vwEA7RelationshipsTableView.RELATIONID,
            vwEA7RecordsTableView_1.LASTNAME AS RELATIONLASTNAME,
            vwEA7RecordsTableView_1.NAMEFORDISPLAY AS RELATIONNAME,
             dbo.vwEA7RelationshipsTableView.RELATIONDESC
FROM         dbo.vwEA7RelationshipsTableView INNER JOIN
                      dbo.vwEA7RecordsTableView ON
                         dbo.vwEA7RelationshipsTableView.PRIMARYID = dbo.vwEA7RecordsTableView.ID INNER JOIN
                      dbo.vwEA7RecordsTableView AS vwEA7RecordsTableView_1 ON
                         dbo.vwEA7RelationshipsTableView.RELATIONID = vwEA7RecordsTableView_1.ID

TableViews - это просто воссоздание первичных таблиц из основной базы данных.

1 Ответ

0 голосов
/ 30 октября 2009

Я решил эту проблему. Мой SQL-код был хорош, это было вопросом форматирования моих внутренних параметров для Crystal, а также некоторой творческой группировки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...