Subselects in WHEN not generated correctly
------------------------------------------

                 Key: DNET-870
                 URL: http://tracker.firebirdsql.org/browse/DNET-870
             Project: .NET Data provider
          Issue Type: Bug
          Components: Entity Framework Core
    Affects Versions: 6.5.0.0
            Reporter: Jiri Cincura
            Assignee: Jiri Cincura
            Priority: Minor


return Ok(
             new {
              OP =  await db.HT_REZERVARI
                  .Where(r => r.ID == id)
                  .Select(r => new 
                     {
                         r.ID,
                         r.ID_CAMERA,
                         r.DATAI,
                         r.NRZILE,
                         r.STARE,
                         r.ID_CF,
                         r.IDOPERATOR,
                         r.FACTURAT,
                         r.FACTURAT3,
                         r.TIPFCCUR,
                         r.NR_FACT,
                         r.DATAF,
                         r.NR_FACTP,
                         r.DATAFP,
                         r.NR_FACT3,
                         DATAF3 =  r.HT_INFEXPED.Where(x => x.TIP == 
3).Select(x => x.DATAF).FirstOrDefault(),
                         TAXESUPL= r.HT_TAXE.Any(t=>t.TIP==3) ? 1 : 0,
                         DENCL = r.CF.DENUMIRE,
                         DENCAMERA = r.HT_CAMERE.DEN,
                         DENZONA = r.HT_CAMERE.HT_ZONE.DENUMIRE,
                         r.IDGRUP,
                         DENGRUP = r.HT_REZGRUPE.DENUMIRE,
                         r.AVANS,
                         r.AVANSCUFC,
                         NR_FACTA = r.HT_INFEXPED.Where(x => x.TIP == 
2).Select(x => x.NRFACT).FirstOrDefault(),
                         DATAFA = r.HT_INFEXPED.Where(x => x.TIP == 2).Select(x 
=> x.DATAF).FirstOrDefault(),
                         r.NR_CAMERE,
                         RONLY = r.IDGRUP>0 && db.HT_REZERVARI.Any(re => 
re.IDGRUP == r.IDGRUP && re.ID !=r.ID 
                              && ((re.STARE==1 && re.NR_FACTP>0) || re.STARE==0 
&& re.NR_FACT>0)),
                         r.DATAPLATA
                     
                  }).ToListAsync(),

              PLATI = await db.HT_PLATI
              .Where(p => p.IDCAZARE == id)
              .Join(db.HT_REZERVARI, p => new {ID= p.IDCAZARE, p.TIPFC }, r => 
new { r.ID, TIPFC=r.TIPFCCUR }, (p, r) => new { p, r })
              .Select(g=> new { g.p.TIP, g.p.VALOARE })
              .ToListAsync()
              }  
             );
===
SELECT "r"."ID", "r"."ID_CAMERA", "r"."DATAI", "r"."NRZILE", "r"."STARE", 
"r"."ID_CF", "r"."IDOPERATOR", "r"."FACTURAT", "r"."FACTURAT3", "r"."TIPFCCUR", 
"r"."NR_FACT", "r"."DATAF", "r"."NR_FACTP", "r"."DATAFP", "r"."NR_FACT3", (
    SELECT FIRST 1 "x"."DATAF"
    FROM "HT_INFEXPED" AS "x"
    WHERE ("x"."TIP" = 3) AND ("r"."ID" = "x"."ID_REZERVARE")
) AS "DATAF3", CASE
    WHEN (
        SELECT CASE
            WHEN EXISTS (
                SELECT 1
                FROM "HT_TAXE" AS "t"
                WHERE ("t"."TIP" = 3) AND ("r"."ID" = "t"."ID_REZERVARE"))
            THEN TRUE ELSE FALSE
        END
    )
    FROM RDB$DATABASE = TRUE
    THEN 1 ELSE 0
END AS "TAXESUPL", "r.CF"."DENUMIRE" AS "DENCL", "r.HT_CAMERE"."DEN" AS 
"DENCAMERA", "r.HT_CAMERE.HT_ZONE"."DENUMIRE" AS "DENZONA", "r"."IDGRUP", 
"r.HT_REZGRUPE"."DENUMIRE" AS "DENGRUP", "r"."AVANS", "r"."AVANSCUFC", 
COALESCE((
    SELECT FIRST 1 "x0"."NRFACT"
    FROM "HT_INFEXPED" AS "x0"
    WHERE ("x0"."TIP" = 2) AND ("r"."ID" = "x0"."ID_REZERVARE")
), 0) AS "NR_FACTA", (
    SELECT FIRST 1 "x1"."DATAF"
    FROM "HT_INFEXPED" AS "x1"
    WHERE ("x1"."TIP" = 2) AND ("r"."ID" = "x1"."ID_REZERVARE")
) AS "DATAFA", "r"."NR_CAMERE", CASE
    WHEN ("r"."IDGRUP" > 0) AND ((
        SELECT CASE
            WHEN EXISTS (
                SELECT 1
                FROM "HT_REZERVARI" AS "re"
                WHERE (("re"."IDGRUP" = "r"."IDGRUP") AND ("re"."ID" <> 
"r"."ID")) AND ((("re"."STARE" = 1) AND ("re"."NR_FACTP" > 0)) OR 
(("re"."STARE" = 0) AND ("re"."NR_FACT" > 0))))
            THEN TRUE ELSE FALSE
        END
    )
    FROM RDB$DATABASE = TRUE)
    THEN TRUE ELSE FALSE
END AS "RONLY", "r"."DATAPLATA"
FROM "HT_REZERVARI" AS "r"
INNER JOIN "HT_REZGRUPE" AS "r.HT_REZGRUPE" ON "r"."IDGRUP" = 
"r.HT_REZGRUPE"."ID"
INNER JOIN "HT_CAMERE" AS "r.HT_CAMERE" ON "r"."ID_CAMERA" = "r.HT_CAMERE"."ID"
INNER JOIN "HT_ZONE" AS "r.HT_CAMERE.HT_ZONE" ON "r.HT_CAMERE"."ID_ZONA" = 
"r.HT_CAMERE.HT_ZONE"."ID"
INNER JOIN "CF" AS "r.CF" ON "r"."ID_CF" = "r.CF"."ID"
WHERE "r"."ID" = @__id_0

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


_______________________________________________
Firebird-net-provider mailing list
Firebird-net-provider@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to