我有三个表根据录取过程存储不同类型的数据。
第一个表格([dbo]。[Inscripciones_Pregrado])存储未来学生的基本联系信息。第二个表([dbo]。[Checklist_Documentos])存储学生完成录取过程所必须具备的文件的名称和ID。第三个表格([dbo]。[Checklist_Pregrado])存储学生有效带到招生办公室的文件。
我需要结合这些信息,以便我们可以导出包含所有联系信息的excel文件,以及每个学生的文档清单。
所以,让我们说表1有4条记录: [DBO]。[Inscripciones_Pregrado]
第二个表([dbo]。[Checklist_Documentos])有八个记录,不同类型的请求文件:
第三张表([dbo]。[Checklist_Pregrado])有16条记录:
我需要的是这三张牌根据上进的ID组合:
到目前为止,我已经尝试过不同类型的代码:
代码1
SELECT
[dbo].[Inscripciones_Pregrado].[ID],
[dbo].[Inscripciones_Pregrado].[Name],
[dbo].[Inscripciones_Pregrado].[ProgramID],
[dbo].[Checklist_Documentos].[Document]
FROM [dbo].[Inscripciones_Pregrado]
INNER JOIN
[dbo].[Checklist_Pregrado]
ON [dbo].[Checklist_Pregrado].[IdForm] = [dbo].[Inscripciones_Pregrado].[ID]
INNER JOIN
[dbo].[Checklist_Documentos]
ON [dbo].[Checklist_Documentos].[ID] = [dbo].[Checklist_Pregrado].[IdDoc]
这个每个文档得一行,所以根据有志者在其文件夹中的文档数量重复名称和其他记录。
代码2
SELECT
[dbo].[Inscripciones_Pregrado].[ID],
[dbo].[Inscripciones_Pregrado].[Nombres],
[dbo].[Inscripciones_Pregrado].[Apellido1],
(STUFF((SELECT CAST(', ' + [dbo].[Checklist_Pregrado].[IdDocumento] AS varchar(max))
FROM [dbo].[Checklist_Pregrado]
WHERE([dbo].[Inscripciones_Pregrado].[ID] = [dbo].[Checklist_Pregrado].[IdForm])
FOR XML PATH ('')), 1, 2, '')) AS [Docs]
FROM [dbo].[Inscripciones_Pregrado]
此代码获取和错误: 转换varchar值时转换失败','数据类型int。
感谢您的所有帮助和评论。
由于
答案 0 :(得分:1)
对于代码2 ,您可以在执行连接之前执行CAST
来修复错误。
换句话说:
(STUFF((SELECT ', ' + CAST([dbo].[Checklist_Pregrado].[IdDocumento] AS varchar(max))
答案 1 :(得分:1)
db.getMongo().setSlaveOk()