- 我真的不确定如何标记我的查询标题,所以随意改变它! -
目标:显示所有'子数据'在gridview上还有一行显示没有数据'对于没有数据的属性。因此,如果您对Property 1进行了通配符搜索,并且有一个属性' 1'有两行详细信息以及一个属性' 11'但没有详细信息,那么数据网格上会有三行(两个用于属性' 1'一个用于属性' ; 11')财产行' 11'会有UPRN然后其他行会有这个UPRN'没有数据。
问题:在用户搜索时,网格显示来自' TblAssociatedData'的详细信息。但是,我想要做的是当没有找到其中一个潜在的UPRN的数据时,TblProperty'我想为此返回一行,并且没有找到数据'所以用户可以看到搜索有效也是这个属性。
这不是没有数据显示的问题,我的工作正常。
我假设有人在问某个地方,但我尝试过不同的短语和搜索但却无法找到我之后的内容。
我现在使用的代码:
SELECT * FROM TblAssociatedData AS a
INNER JOIN TblProperty As p
on p.UPRN = a.UPRN
WHERE
a.SurveyDate between @sDateFrom and @sDateTo AND
(a.UPRN LIKE '%' + @sUPRN + '%' or
p.PostCode LIKE '%' + @sPostcode + '%' or
p.ShopName LIKE '%' + @sPropertyName + '%' or
p.Street LIKE '%' + @sStreet + '%' or
p.Reg LIKE '%' + @sRegion + '%' or
a.SurveyCompany LIKE '%' + @sSurveyCompany + '%')
无法理解如何添加下一部分我已经完成了一个未经测试的布局,好像它在.aspx页面本身一样,希望能够在结果方面显示我的思考过程是什么
显示思维过程的代码布局
sSQL1 = SELECT * FROM TBLProperty WHERE UPRN LIKE '%vUPRN%'
-- select and then loop
dsNames1 = New SqlDataSource
dsNames1.ConnectionString = sConnString
dsNames1.SelectCommand = sSQL1
For Each datarow1 As Data.DataRowView In dsNames1.Select(DataSourceSelectArguments.Empty)
Dim vCount As Int = SELECT * FROM TBLProperty WHERE UPRN LIKE "'& datarow1("UPRN") &'"
If vCount > 0 Then
For Each datarow1 As Data.DataRowView In dsNames1.Select(DataSourceSelectArguments.Empty)
--loop through database and output i.e.
DateOfIssue = datarow("UPRN")
DateOfIssue = datarow("DateOfIssue")
Next
Else
--put default text here
DateOfIssue = vUPRN
DateOfIssue = "-"
End If
基本上当我没有获得找到的属性的回报时,我想为UPRN输出类似下面的内容。
SELECT 'No data found.' as ColumnName1, '' as ColumnName2, '' as ColumnName3, '' as ColumnName4
答案 0 :(得分:1)
尝试:
SELECT
p.UPRN,
COALESCE(a.UPRN,'Not Found') AS Column3
FROM TblProperty AS p
LEFT JOIN TblAssociatedData AS a
ON a.UPRN = p.UPRN
WHERE p.UPRN LIKE '%99%'