sql-server - SQL Server SSRS 查询问题
问题描述
我有以下查询:
SELECT
pupils.txtSchoolID, pupils.txtPreName, pupils.txtSurname,
pupils.txtForm, pupils.txtAdditionalHealth, pupils.txtAllergyNotes,
notes.txtNote
FROM
TblPupilManagementPupils AS pupils
LEFT OUTER JOIN
TblPupilManagementHealthNotes AS notes ON pupils.txtSchoolID = notes.txtSchoolID
我只需要拉notes.txtNote
when notes.txtType = 'Dietary'
,但是,当我在一个WHERE
子句中设置它时,我只得到带有饮食类型的条目,我仍然需要所有学生的表格数据。我认为左外连接会这样做。
设置WHERE
子句时,我尝试
WHERE notes.txtType = 'Dietary'
但这也不起作用,我暂时设置为参数。
解决方案
您必须删除 where 子句并将该条件放在子句上,因为
从逻辑上讲,所有 JOIN 都使用 ON 过滤器作为 INNER JOIN 执行,然后,作为后续步骤,将任何 OUTER JOIN 行添加回必要的一侧。在所有 JOIN 完成后,将处理 WHERE 过滤器。结果,当您将其应用于删除所有期望值Dietary
记录的位置时
SELECT pupils.txtSchoolID, pupils.txtPreName, pupils.txtSurname,
pupils.txtForm, pupils.txtAdditionalHealth, pupils.txtAllergyNotes,
notes.txtNote
FROM TblPupilManagementPupils AS pupils LEFT OUTER JOIN
TblPupilManagementHealthNotes AS notes
ON pupils.txtSchoolID = notes.txtSchoolID and notes.txtType = 'Dietary'
推荐阅读
- bash - 如何使用多个 shebang 解释器运行同一个文件?
- ajax - 如何在 cakephp 2 控制器中获取 ajax 请求数据?
- c# - 应用启动后,Windows 10 IoT Core 终止与 Xbox 360 无线游戏控制器的连接
- vue.js - 如何在范围外更改 vue.js 组件数据
- bash - 每个输入文件创建单独的输出文件
- python - Pandas 读取 (Excel) 文本列,并返回相似率
- javascript - 是否可以在函数内导出模块?
- kubernetes - 如何更新在用户集群中运行的应用程序?
- javascript - 如何检查 .fetchMessage 是否收到实际消息
- c# - Unity3d中的“等待”如何不阻塞?