sql三表链接查询


  select * from [dbo].[Contract_BaseInfor] as x
  join [dbo].[MaterialType] as a on x.RowGuid = a.ContractRowGuid
  join [dbo].[EquipmentEFile_Category] as b on a.RowGuid = b.MaterialDetailRowGuid
  join [dbo].[EquipmentEFile] as c on c.ParentRowGuid = b.RowGuid
  where x.RowGuid='655b9e4f-4f75-4eeb-8598-de14834dd640' and a.Count >0 and c.IsMaxVersion=1
  order by c.StorageName

 dmrlist:合同列表

var contractMT = (from con in dmrlist
                                  join m in dc_ModelData.MaterialType.Where(p => p.MonomerProject == bidRowGuid && p.Count > 0) on con.RowGuid equals m.ContractRowGuid
                                  select new { ConName = con.Name, ConRowGuid = con.RowGuid, MTRowGuid = m.RowGuid } into jtemp
                                  group jtemp by new { jtemp.ConName, jtemp.ConRowGuid } into temp
                                  select new { ConName = temp.Key.ConName, ConRowGuid = temp.Key.ConRowGuid, MTCount = temp.Count() }).ToList();
                int contractMTCount = contractMT.Count;

                var contractEFile = (from con in contractMT
                                     join m in dc_ModelData.MaterialType.Where(p => p.MonomerProject == bidRowGuid && p.Count > 0) on con.ConRowGuid equals m.ContractRowGuid
                                     join h in dc_ModelData.EquipmentEFile_Category.Where(p => p.BidSectionRowGuid == bidRowGuid && p.Title == "族文件") on m.RowGuid equals h.MaterialDetailRowGuid
                                     join k in dc_ModelData.EquipmentEFile.Where(p => p.IsMaxVersion == true) on h.RowGuid equals k.ParentRowGuid
                                     select new { ConName = con.ConName, ConRowGuid = con.ConRowGuid, MTRowGuid = m.RowGuid, EFileRowGuid = k.RowGuid } into jtemp
                                     group jtemp by new { jtemp.ConName, jtemp.ConRowGuid } into temp
                                     select new { ConName = temp.Key.ConName, ConRowGuid = temp.Key.ConRowGuid, EFileCount = temp.Count() }).ToList();
                int contractEFileCount = contractEFile.Count;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM