0

거의 모든 것이 제목에 있으며, gridview의 여러 테이블에서 데이터를 표시하기 위해 SQLdatasource를 만들려고합니다. 아이디 (기본 키), 참조, date_fabrication, ref_fab, ​​masse_reelle, projet_Idsqldatasource의 다중 INNER JOIN이 gridview에 표시하기 위해

테이블 lot_element (테이블 인텔리의 ID로 외래 키)와

테이블 lot_poudre :

나는 모델의 세 개의 테이블을 가지고 아이디 (기본 키), 한꺼번에, lot_poudre_Id합니다 (lot_poudre 테이블의 ID로 외래 키) 및 ID

테이블 인텔리, NOM과

다음

내가 두 테이블에서 표시하는 데이터를 작동하는 시도한 것입니다 (제비_ 뿌드르와 lot_element) : 나는 테이블 인텔리와 (과 같은 세 번째 테이블에서 데이터를 표시 할 때

<asp:SqlDataSource 
     ID="SqlDataSourcelotspoudre" 
     runat="server" 
     ConnectionString="Data Source=GRE032477\SQLEXPRESS;Initial Catalog=db_pour_test;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework" 
     ProviderName="System.Data.SqlClient" 
     SelectCommand= 
     "SELECT lot_poudre.Id, lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab, lot_poudre.masse_reelle/Sum(lot_element.masse)*100 AS rendement, lot_poudre.masse_reelle AS masse_initiale 
     FROM 

      lot_poudre INNER JOIN lot_element 
       ON lot_poudre.Id = lot_element.lot_poudre_Id 


     GROUP BY lot_poudre.Id,lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab,lot_poudre.masse_reelle;"></asp:SqlDataSource> 

문제는) :

<asp:SqlDataSource 
     ID="SqlDataSourcelotspoudre" 
     runat="server" 
     ConnectionString="Data Source=GRE032477\SQLEXPRESS;Initial Catalog=db_pour_test;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework" 
     ProviderName="System.Data.SqlClient" 
     SelectCommand= 
     "SELECT lot_poudre.Id, lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab, projet.nom, lot_poudre.masse_reelle/Sum(lot_element.masse)*100 AS rendement, lot_poudre.masse_reelle AS masse_initiale 
     FROM projet 
     INNER JOIN 
      lot_poudre INNER JOIN lot_element 
       ON lot_poudre.Id = lot_element.lot_poudre_Id 
     ON projet.Id = lot_poudre.projet_Id 

     GROUP BY lot_poudre.Id,lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab,lot_poudre.masse_reelle, projet.nom;"></asp:SqlDataSource> 

내가 오류가 개체의 이름이 "인텔리 말한다 " 유효하지.

나는 모든 것을 시도했는데 도움이 필요하다. 마지막 gridviewI는 5 개의 테이블에서 값을 표시하려고 시도하고있다 !!

감사

Boid '당신의 내부 조인

답변

1

가 올바르지 않습니다. 이 SQL을 시도하십시오 :

SELECT lot_poudre.Id, 
     lot_poudre.reference, 
     lot_poudre.date_fabrication, 
     lot_poudre.ref_fab, projet.nom, 
     lot_poudre.masse_reelle/Sum(lot_element.masse)*100 AS rendement, 
     lot_poudre.masse_reelle AS masse_initiale 
     FROM projet 
     INNER JOIN lot_poudre ON projet.Id = lot_pourde.Id 
     INNER JOIN lot_element ON lot_poudre.Id = lot_element.lot_poudre_Id 
     GROUP BY lot_poudre.Id,lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab,lot_poudre.masse_reelle, projet.nom 
0

처음 ON 조건이 생기기 전에 두 개의 내부 조인이 있습니다. 각 조인 인스턴스는 다음 INNER JOIN 문 앞에 해당 조인에 대한 ON 조건이 따라야합니다.

0

답변 해 주셔서 감사합니다.

마침내 문제가 무엇인지 확인했습니다. 엔티티 프레임 워크에서는 때때로 "s"를 일부 엔티티에 넣어야합니다. 이 경우에는 효과가있었습니다 ("s"가 "project"에 추가되었습니다).

세 개의 테이블을 연결하기 때문에 첫 번째 ON 전에 두 개의 INNER JOIN이 있습니다. Microsoft Access에서는 "내부"INNER JOIN에 괄호가있어서 더 명확하게 나타납니다.

"SELECT lot_poudre.Id, lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab, projets.nom, lot_poudre.masse_reelle/Sum(lot_element.masse)*100 AS rendement, lot_poudre.masse_reelle AS masse_initiale 
     FROM lot_element 
     INNER JOIN 
      lot_poudre INNER JOIN projets 
       ON lot_poudre.projet_Id = projets.Id 
     ON lot_element.lot_poudre_Id = lot_poudre.Id 

     GROUP BY lot_poudre.Id,lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab,lot_poudre.masse_reelle, projets.nom" 

잘 작동합니다 ("s"가 추가 된 RickJames 응답).

SELECT lot_poudre.Id, 
     lot_poudre.reference, 
     lot_poudre.date_fabrication, 
     lot_poudre.ref_fab, 
     projets.nom, 
     lot_poudre.masse_reelle/Sum(lot_element.masse)*100 AS rendement, 
     lot_poudre.masse_reelle AS masse_initiale 
     FROM projets 
     INNER JOIN lot_poudre ON projets.Id = lot_poudre.projet_Id 
     INNER JOIN lot_element ON lot_poudre.Id = lot_element.lot_poudre_Id 
     GROUP BY lot_poudre.Id,lot_poudre.reference, lot_poudre.date_fabrication, lot_poudre.ref_fab,lot_poudre.masse_reelle, projets.nom" 

감사합니다 모두