1
我有四個精密組件問題在SQL Server多個遊標
表tbLicence- AGENTID
- LicenceNumber
- LineOfAuthority
- 管轄權
讓我們說我有一個記錄具有以下值
- AGENTID = 307
- LicenceNumber = 245678
- LineOfAuthority = 「牙科服務,個人險種,險」
- 管轄權= 「阿拉巴馬州,紐約」
...
...
我相若方式有其他記錄有着不同的價值觀在此表
注意LineOfAuthority和管轄權包含由逗號分隔的多個值「」。
如果我將傳遞參數
- @AgentId = 307
- @LineOfAuthority = 「險」
- @Jurisdiction = 「紐約」
然後輸出應該
LicenceNumber = 245678
我已存儲過程如下
ALTER PROCEDURE [dbo].[prLicenceFetchForAgentId]
@LineOfAuthority nvarchar(max),
@Jurisdiction nvarchar(max),
@AgentId int
AS
Create table #tbLOA (
LOA nvarchar(max)
);
create table #tbtempJuris(
Jurisdiction nvarchar(max)
);
Insert into #tbLOA(LOA) Select LineOfAuthority from tbLicence where AgentId [email protected];
Insert into #tbtempJuris(Jurisdiction) Select Jurisdiction from tbLicence where AgentId [email protected];
DECLARE @LOASubString varchar(100);
DECLARE @JurisdictionSubString varchar(100);
-- first cursor
DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR FAST_FORWARD
FOR
Select LOA FROM #tbLOA
OPEN @MyCursor
FETCH NEXT FROM @MyCursor
INTO @LOASubString
WHILE @@FETCH_STATUS = 0
BEGIN
-- second cursor
DECLARE @MyCursor2 CURSOR
SET @MyCursor2 = CURSOR FAST_FORWARD
FOR
Select LOA FROM #tbLOA
OPEN @MyCursor2
FETCH NEXT FROM @MyCursor2
INTO @JurisdictionSubString
WHILE @@FETCH_STATUS = 0
BEGIN
--second code
if(@LOASubString = @LineOfAuthority and @JurisdictionSubString = @Jurisdiction)
begin
Select LicenceNumber from tbLicence where LineOfAuthority = @LOASubString
and [email protected] and AgentId [email protected];
break;
end
FETCH NEXT FROM @MyCursor2
INTO @JurisdictionSubString
END
CLOSE @MyCursor2
DEALLOCATE @MyCursor2
--end cursor 2
FETCH NEXT FROM @MyCursor
INTO @LOASubString
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
現在我無法得到正確的結果......它沒有表現出任何許可證號...... 請幫助我!
你是絕對正確的,先生......其實具有單列多個值的想法是不是我的主意。這是由其他devolper完成的...非常感謝先生... – Nida