【发布时间】:2016-03-14 15:20:42
【问题描述】:
我正在 sql server 中编写一个 VIEW 并使用内部连接连接了几个表。
问题。
- 当我在内部联接语句中添加“order by nameRela.WNAME_INDIVIDUAL_LAST”时,下一个内部联接以红色突出显示,表示“内部语法不正确”
- 当我在 select 语句中添加“top 1”时,它也会以红色显示错误。
使用带有多个内部连接的 select 语句,添加“Top 1”或选择第一条记录并添加顺序的正确语法是什么
谢谢
select top 500
rtrim(pendk_policy) as Id
,case (pendk_company) when '17' then 'BNR' when 'WP' then 'PENN' end as Company
,case rtrim(pendk_policy) when '' then '--' else rtrim(pendk_policy) end as PolicyNumber
,'InForce' as [Type]
, (
case
when WPOLC_CONTRACT_CODE = 'A' then 'Active'
when WPOLC_CONTRACT_CODE = 'T' then 'Terminated'
when WPOLC_CONTRACT_CODE = 'P' then 'Pending'
when WPOLC_CONTRACT_CODE = 'S' then 'Suspended'
when WPOLC_CONTRACT_CODE = 'H' then 'On Hold'
end
) as [Status]
, top 1 rtrim(nameRela.wname_individual_first) + ' '+ rtrim(nameRela.wname_individual_middle) + ' ' + rtrim(nameRela.wname_individual_last) as Customer
from
WPOLC_TABL wpolc
inner join WRELA_TABL wrela on (wrela.WRELA_COMPANY_CODE = wpolc.WPOLC_COMPANY_CODE and wrela.WRELA_POLICY_NUMBER = wpolc.WPOLC_POLICY_NUMBER and wrela.WRELA_RELATE_CODE = 'sa')
inner join WRELA_TABL custRela on (custRela.WRELA_COMPANY_CODE = wpolc.WPOLC_COMPANY_CODE and custRela.WRELA_POLICY_NUMBER = wpolc.WPOLC_POLICY_NUMBER
and custRela.WRELA_RELATE_CODE in ('in', 'ji' , 'je')) order by custRela.WRELA_RELATE_CODE
inner join wname_tabl nameRela on (custRela.WRELA_COMPANY_CODE = nameRela.WNAME_COMPANY_CODE and custRela.WRELA_NAME_ID = nameRela.WNAME_NAME_ID )
order by nameRela.WNAME_INDIVIDUAL_LAST
inner join PENDKEY_TABL pk on (wrela.WRELA_COMPANY_CODE = pk.PendK_company and wrela.WRELA_POLICY_NUMBER = pk.PENDK_POLICY)
【问题讨论】:
-
嗯?这些都不是有效的 SQL 语法。你可能想做什么?
-
请发布一些示例数据和您想要的结果。我们无法真正说出您要使用此查询来完成什么。就目前而言,您不能使用多个
TOP X语句应用于不同的列,并且您不能在JOIN语句之后使用ORDER BY。
标签: sql sql-server