现有表RegionInfo(片区表)、UnitInfo(单元楼)、HouseInfo(房屋档案)、TableRec(抄表记录)四张表,其中:
表TableRec有Tohouse外键与HouseInfo的HouseID主键相连;
表HouseInfo有ToUnit外键与UnitInfo的UnitID主键相连;
表UnitInfo有ToRegion外键与RegionInfo的RegionID主键相连;现在我需要根据用户选择的RegionInfo、UnitInfo和TableRec记录的时间段筛选条件,来查询指定“片区-->单元楼下“对应房屋的抄表记录。RegionInfo和UnitInfo根据应用程序选择得到
请问,这个语句怎么写啊?

解决方案 »

  1.   

    --是不是这意思,试试
    select a.regionid,b.unitid,d.* from regioninfo a,unitinfo b,houseinfo c,tablerec d
    where a.regionid=b.toregion and b.unitid=c.tounit and c.houseid=d.tohouse
    and a.regionid=@片区(应用程序传入) and b.unitid=@单元楼(应用程序传入)
    and d.时间字段 between @开始时间(应用程序传入) and @结束时间(应用程序传入)
      

  2.   

    是,这样也对,呵呵!!
    SELECT dbo.TableManage.*
    FROM dbo.HouseInfo INNER JOIN
          dbo.RegionInfo ON dbo.HouseInfo.ToRegion = dbo.RegionInfo.RegionId INNER JOIN
          dbo.TableManage ON 
          dbo.HouseInfo.HouseID = dbo.TableManage.ToHouse INNER JOIN
          dbo.UnitInfo ON dbo.HouseInfo.ToUnit = dbo.UnitInfo.UnitId AND 
          dbo.RegionInfo.RegionId = dbo.UnitInfo.ToRegion
    WHERE (dbo.UnitInfo.ToRegion =6) AND (dbo.HouseInfo.ToUnit = 2) AND (dbo.HouseInfo.HouseCode = '215656') 接分