Linq中的访问查询

时间:2016-12-27 09:26:40

标签: sql linq ms-access

我有一个复杂的访问sql查询来转换linq

这就是我的所作所为:

 var query = from p in tbl_multiIntervenants.AsEnumerable()
                        join q in 
                                ( 
                                  from s in tbl_contrats.AsEnumerable()
                                    join t in 
                                            (
                                                from u in tbl_traitement_gapp.AsEnumerable()
                                                join v in tbl_TP.AsEnumerable()
                                                on u.Field<string>("Identifiant tâche") equals v.Field<string>("Identifiant tâche") into joined 
                                                from jointe in joined.DefaultIfEmpty()
                                                select jointe
                                              )  

                                    ) 

这里是SQL查询:

SELECT Tbl_TP.Société, Tbl_TP.Région, Tbl_TP.[N° Site], Tbl_TP.[Nom Site], 
                    Tbl_TP.[Identifiant intervention], Tbl_TP.[Gamme intervention], 
                    Tbl_TP.[Description de l'intervention], Tbl_TP.[Identifiant tâche], Tbl_TP.Description, 
                    Tbl_TP.[Etat administratif intervention], Tbl_TP.[Date début prévu tâche], Tbl_TP.[Date fin prévu tâche], Tbl_TP.Detrompeur, 
                    Tbl_TP.[Entité demandeur], Tbl_TP.[Infos Demandeur], Tbl_TP.[Indicateur accompagnement], Tbl_TP.[Code Journalier], Tbl_TP.Coupure, 
                    Tbl_TP.[Validé ?], Tbl_TP.[Accompagnement ?], Tbl_TP.[Observation ?], Tbl_TP.Accès, Tbl_TP.[Contrainte de sécurité], Tbl_TP.V_Couleur, 
                    Tbl_TP.[Caractéristiques de l'intervention], Tbl_CONTRATS.[Sensibilité du site], Tbl_CONTRATS.[Approbation automatique AS], Tbl_TP.[Chef de projet SFR], Tbl_TP.[Date création intervention (hs)], 
                    Tbl_TP.[Identifiant demande], Tbl_TP.PlanPrevention, Tbl_CONTRATS.Appartenance

                    FROM Tbl_Multi_Intervenants 

                    INNER JOIN (Tbl_CONTRATS 
                    INNER JOIN (Tbl_TP LEFT JOIN Tbl_Traitement_GAPP ON Tbl_TP.[Identifiant tâche] = Tbl_Traitement_GAPP.[Identifiant tâche]) 

                    ON Tbl_CONTRATS.Emplacement = Tbl_TP.[N° Site]) 

                    ON Tbl_Multi_Intervenants.[Identifiant tâche] = Tbl_TP.[Identifiant tâche]

                    WHERE (((Tbl_Traitement_GAPP.[Identifiant tâche]) Is Null))
                    GROUP BY Tbl_TP.Société, Tbl_TP.Région, Tbl_TP.[N° Site], Tbl_TP.[Nom Site], Tbl_TP.[Identifiant intervention], Tbl_TP.[Gamme intervention], Tbl_TP.[Description de l'intervention], 
                    Tbl_TP.[Identifiant tâche], Tbl_TP.Description, Tbl_TP.[Etat administratif intervention], Tbl_TP.[Date début prévu tâche], Tbl_TP.[Date fin prévu tâche], Tbl_TP.Detrompeur, 
                    Tbl_TP.[Entité demandeur], Tbl_TP.[Infos Demandeur], Tbl_TP.[Indicateur accompagnement], Tbl_TP.[Code Journalier], Tbl_TP.Coupure, Tbl_TP.[Validé ?], 
                    Tbl_TP.[Accompagnement ?], Tbl_TP.[Observation ?], Tbl_TP.Accès, Tbl_TP.[Contrainte de sécurité], Tbl_TP.V_Couleur, 
                    Tbl_TP.[Caractéristiques de l'intervention], Tbl_CONTRATS.[Sensibilité du site], Tbl_CONTRATS.[Approbation automatique AS], Tbl_TP.[Chef de projet SFR], 
                    Tbl_TP.[Date création intervention (hs)], Tbl_TP.[Identifiant demande], Tbl_TP.PlanPrevention, Tbl_CONTRATS.Appartenance;

1 个答案:

答案 0 :(得分:0)

这里简化的是SQL查询:

SELECT Tbl_TP.Société, Tbl_CONTRATS.Appartenance
FROM Tbl_Multi_Intervenants 
INNER JOIN (Tbl_CONTRATS 
            INNER JOIN (Tbl_TP LEFT JOIN Tbl_Traitement_GAPP ON Tbl_TP.Identifiant tâche] = Tbl_Traitement_GAPP.[Identifiant tâche]) 
                ON Tbl_CONTRATS.Emplacement = Tbl_TP.[N° Site]) 
                ON Tbl_Multi_Intervenants.[Identifiant tâche] = Tbl_TP.[Identifiant tâche]
WHERE (((Tbl_Traitement_GAPP.[Identifiant tâche]) Is Null))