Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何用vb.net在一个水晶报表中显示四表数据_Sql_Sql Server - Fatal编程技术网

Sql 如何用vb.net在一个水晶报表中显示四表数据

Sql 如何用vb.net在一个水晶报表中显示四表数据,sql,sql-server,Sql,Sql Server,我在做一个社会项目。我正在使用sql数据库和vb.net。数据库中有四个表,如下所示 登记 提名人 成员详细信息 机械细节 我想在一个crystal报告中显示所有四个表中的数据。我尝试使用VS2010的内置sql查询创建者来实现这一点,但当数据库中存在数据时,它返回0行。我还创建了一个数据集和一个表格来填充所有内容,并尝试在crystal report上显示,但结果为零。我的问题如下- SELECT Registration.RegID, Registration.BoardNo,

我在做一个社会项目。我正在使用sql数据库和vb.net。数据库中有四个表,如下所示

  • 登记
  • 提名人
  • 成员详细信息
  • 机械细节
  • 我想在一个crystal报告中显示所有四个表中的数据。我尝试使用VS2010的内置sql查询创建者来实现这一点,但当数据库中存在数据时,它返回0行。我还创建了一个数据集和一个表格来填充所有内容,并尝试在crystal report上显示,但结果为零。我的问题如下-

    SELECT        Registration.RegID, Registration.BoardNo, Registration.Name, Registration.Gender, Registration.DOB, Registration.RationCardNo, Registration.F_H_Name, 
                         Registration.VoterID, Registration.Eligibility, Registration.PanNo, Registration.Categary, Registration.BankAcNo, Registration.Bussiness, Registration.Phone, 
                         Registration.Address, Registration.Photo, Nominee.NomineeName, Nominee.Relation, Nominee.Adult, Nominee.NDOB, Nominee.Guard_Address, 
                         Nominee.EnrollDate, MemberDetail.F_M_Number, MemberDetail.No_of_Dependent, MemberDetail.Land_Owned, MemberDetail.HouseNo, MemberDetail.MAddress, 
                         MemberDetail.BuiltArea, MemberDetail.HCost, MachinaryDetail.Head, MachinaryDetail.Number, MachinaryDetail.MCost
    FROM            MachinaryDetail INNER JOIN
                         MemberDetail ON MachinaryDetail.RegID = MemberDetail.RegID INNER JOIN
                         Nominee ON MachinaryDetail.RegID = Nominee.RegID INNER JOIN
                         Registration ON MachinaryDetail.RegID = Registration.RegID
    WHERE Registration.RegID='BS-ksd2'
    

    可能一个或多个其他表没有匹配的记录。如果是这样,对该表的
    内部联接将导致不返回任何行

    您可能需要尝试
    左外部联接
    ,以便从
    左外部联接
    子句左侧的表中获取所有内容

    试试这个:

    SELECT        Registration.RegID, Registration.BoardNo, Registration.Name, Registration.Gender, Registration.DOB, Registration.RationCardNo, Registration.F_H_Name, 
                     Registration.VoterID, Registration.Eligibility, Registration.PanNo, Registration.Categary, Registration.BankAcNo, Registration.Bussiness, Registration.Phone, 
                     Registration.Address, Registration.Photo, Nominee.NomineeName, Nominee.Relation, Nominee.Adult, Nominee.NDOB, Nominee.Guard_Address, 
                     Nominee.EnrollDate, MemberDetail.F_M_Number, MemberDetail.No_of_Dependent, MemberDetail.Land_Owned, MemberDetail.HouseNo, MemberDetail.MAddress, 
                     MemberDetail.BuiltArea, MemberDetail.HCost, MachinaryDetail.Head, MachinaryDetail.Number, MachinaryDetail.MCost
    FROM            MachinaryDetail 
        LEFT OUTER JOIN MemberDetail ON MachinaryDetail.RegID = MemberDetail.RegID 
        LEFT OUTER JOIN Nominee ON MachinaryDetail.RegID = Nominee.RegID 
        LEFT OUTER JOIN Registration ON MachinaryDetail.RegID = Registration.RegID
    WHERE RegID='BS-ksd2'
    

    如果在SSMS中运行此查询,它是否返回正确的结果?顺便说一下,所有表都有名为RegID的列,因此查询中的这一部分将导致错误
    RegID='BS-ksd2'
    你确定它会运行吗?@JamesZ抱歉!我的错误。它是Registration.RegIDit返回0行单独检查所有表,其中一个(或多个)没有RegID='BS-ksd2'的任何行。修复数据或使用外部联接(如果结构不正确,则可能不存在数据)。