0
다음 쿼리의 결과가 필요합니다. SQL Server : WHERE 절이 작동하지 않는 INNER JOIN이 작동하지 않습니다.
ALTER PROCEDURE [dbo].[ASASearchMed]
(
@Endorsed Varchar(200),
@Authorized Varchar(200),
@Notes Varchar(200),
@LastName Varchar(50),
@FirstName Varchar(50),
@MiddleName Varchar(50)
)
AS
SELECT
ASA.ASAID
, ASA.ProID
, PRO.LastName
, PRO.FirstName
, PRO.MiddleName
, ASA.ASAType
, ASA.Endorsed
, ASA.Authorized
, ASA.Notes
, ASA.DateReg
, ASA.DateMod
, ASA.UserReg
, ASA.UserMod
FROM
dbo.ASA
INNER JOIN
dbo.PRO ON ASA.ProID = PRO.ProID
WHERE
ASA.ASAType = 'Medical'
AND NULLIF(ASA.MedGLCtrlNo, '') IS NULL OR ASA.MedGLCtrlNo = ''
AND (ASA.Endorsed LIKE '%' + @Endorsed + '%' OR
ASA.Authorized LIKE '%' + @Authorized + '%' OR
ASA.Notes LIKE '%' + @Notes + '%' OR
PRO.LastName LIKE '%' + @LastName + '%' OR
PRO.FirstName LIKE '%' + @FirstName + '%' OR
PRO.MiddleName LIKE '%' + @MiddleName + '%')
내가 이것을 실행하려고
, 그것도 실행되지 않은 것처럼 보이는 나는 아무것도 없어하지만 난 Management Studio에서 쿼리를 시도 할 때 문제가 지속.Medical
이라는 태그가 지정된 레코드로 검색을 필터링하려고하는데 NULL
또는 ''
빈 문자열이 있고 아래의 각 필드에 표시된 데이터와 일치해야합니다. 검색
Public Sub Search()
Dim StrSQL As String = "ASASearchMed"
cLib = New clsLibrary
cLib.openConnection(strConnection)
If Not cLib.isConnectionOpen() Then
Exit Sub
End If
cLib.initializeCommand(StrSQL)
cLib.addParameter("@Endorsed", SqlDbType.VarChar, txtSearch.TextLength, txtSearch.Text)
cLib.addParameter("@Authorized", SqlDbType.VarChar, txtSearch.TextLength, txtSearch.Text)
cLib.addParameter("@Notes", SqlDbType.VarChar, txtSearch.TextLength, txtSearch.Text)
cLib.addParameter("@LastName", SqlDbType.VarChar, txtSearch.TextLength, txtSearch.Text)
cLib.addParameter("@FirstName", SqlDbType.VarChar, txtSearch.TextLength, txtSearch.Text)
cLib.addParameter("@MiddleName", SqlDbType.VarChar, txtSearch.TextLength, txtSearch.Text)
objCommand.ExecuteNonQuery()
lview.Items.Clear()
DisplayData()
End Sub
과 어떻게 목록보기
Public Sub DisplayData()
Dim objDataReader = objCommand.ExecuteReader
While objDataReader.Read
Dim listview As New ListViewItem
With listview
.Text = objDataReader.Item("ASAID")
.SubItems.Add(objDataReader("ProID"))
.SubItems.Add(objDataReader("LastName"))
.SubItems.Add(objDataReader("FirstName"))
.SubItems.Add(objDataReader("MiddleName"))
.SubItems.Add(objDataReader("ASAType"))
.SubItems.Add(objDataReader("Endorsed"))
.SubItems.Add(objDataReader("Authorized"))
.SubItems.Add(objDataReader("Notes"))
.SubItems.Add(objDataReader("DateReg"))
.SubItems.Add(objDataReader("DateMod"))
.SubItems.Add(objDataReader("UserReg"))
.SubItems.Add(objDataReader("UserMod"))
End With
lview.Items.Add(listview)
End While
End Sub
에 출력을 표시하기위한
는내 코드입니다.
Public Sub LoadData()
Dim StrSQL As String = "ASAViewMed"
cLib = New clsLibrary
cLib.openConnection(strConnection)
If Not cLib.isConnectionOpen() Then
Exit Sub
End If
cLib.initializeCommand(StrSQL)
objCommand.ExecuteNonQuery()
lview.Items.Clear()
DisplayData()
End Sub
누군가 나를 도울 수 있거나 계몽 할 수 있기를 바랍니다. 미리 감사드립니다!
where 절을 제거하고 얻은 것을 확인하십시오 (관리 스튜디오 사용). 그런 다음 범인을 찾을 때까지 where 절 테스트를 하나씩 추가하십시오. –
안녕하세요 @rontornambe, 전에 시도하고 여전히 문제가 무엇인지 찾을 수 없습니다. –
그래서 where 절이없는 조인은 이제 행을 반환합니까? –