Я использую SQL Server 2014 и имеют два стола: ApplicationProjectLO
и V_SIP_ALLSTAFF
:SQL UNION не работает
Таблица ApplicationProjectLO
:
|---------------------|---------------------------|
| StaffEmailId | Type |
|---------------------|---------------------------|
| chinkim1 | L |
|---------------------|---------------------------|
| kandiah1 | A |
|---------------------|---------------------------|
Таблица V_SIP_ALLSTAFF
|---------------------|----------------|-------------------|---------------|
| lOGINID | displayname | Email Address |MainOfficeTelNo|
|---------------------|----------------|---------------- |-------------- |
| chinkim1 | james | 1 | 5 |
|---------------------|----------------|---------------- |---------------|
| kandiah1 | hoho | 2 | 8 |
|---------------------|----------------|---------------- |---------------|
Я хотел бы отобразить информацию на основе «Тип».
Так что, если StaffEmailId
соответствует LONGINID
и тип A
, информация о типе A
(то есть hoho
, 2
и 8
) должны быть отображены, и если тип L
то james
, 1
и 5
сусло будет отображаться.
Я пытался использовать UNION
и UNION ALL
запустить два оператора выбора в одном запросе, но он возвращает только type=L
результат на основе этого запроса:
SELECT
vsa.displayname NameofLiaisonOfficer,
vsa.EmailAddress LOEmail,
'(65)' +' '+ convert(varchar, vsa.MainOfficeTelNo) as LOContactNo,
vsa.MainOfficeTelNo GeneralOfficeConatctNo
FROM ApplicationProjectLo ap
INNER JOIN V_SIP_ALLSTAFF vsa ON ap.StaffEmailId = vsa.LOGINID
WHERE ap.Type = 'L'
UNION ALL
SELECT
vsa.displayname NameofAlternateLiaisonOfficer,
vsa.EmailAddress AlternateLOEmail,
'(65)' +' '+ convert(varchar, vsa.MainOfficeTelNo) as AlternateLOContactNo,
vsa.MainOfficeTelNo GeneralOfficeConatctNo
FROM ApplicationProjectLo ap
INNER JOIN V_SIP_ALLSTAFF vsa ON ap.StaffEmailId = vsa.LOGINID
WHERE ap.Type = 'A'
MVC Вид:
<tr>
<td colspan="3">
<strong>Name of Liaison Officer</strong>
<br />
<br /> @Html.DisplayFor(m => m.TPInformationDetails.NameofLiaisonOfficer)
</td>
@*
<td>
<strong>Room Number</strong>
<br />
<br />
</td>*@
<td>
<strong>Contact Number</strong>
<br />
<br /> @Html.DisplayFor(m => m.TPInformationDetails.LOContactNo)
</td>
<td>
<strong>Email Address</strong>
<br />
<br /> @Html.DisplayFor(m => m.TPInformationDetails.LOEmail)
</td>
</tr>
<!-- Table Row -->
<tr class="even">
<td colspan="3">
<strong>Name of Alternate Liaison Officer</strong>
<br />
<br /> @Html.DisplayFor(m => m.TPInformationDetails.NameofAlternateLiaisonOfficer)
</td>
<td>
<strong>Contact Number</strong>
<br />
<br /> @Html.DisplayFor(m => m.TPInformationDetails.AlternateLOContactNo)
</td>
<td>
<strong>Email Address</strong>
<br />
<br /> @Html.DisplayFor(m => m.TPInformationDetails.AlternateLOEmail)
</td>
</tr>
<!-- Table Row -->
Почему вы используете союз вместо присоединиться? – Zeina
Можете ли вы сначала изолировать проблему. Связан ли MVC? – qxg
На основе предоставленного ответа он не использует модель, которая привязана к запросу. Например, NameofLiaisonOfficer, но для типа «А» это NameofAlternateLiaisonOfficer. Если я просто использую NameofLiaisonOfficer и привяжу к представлению, он отобразит тот же результат. – user3807187