Ejemplo n.º 1
0
        public void Python_Result_Should_Have_All_SQL_Results()
        {
            var db    = CMSDataContext.Create(DatabaseFixture.Host);
            var model = new PythonModel(db);

            var id = db.FetchLastQuery().Id;

            model.DictionaryAdd("BlueToolbarGuid", id.ToCode());

            string sql    = "\n;WITH givingunits AS (\n SELECT p.PeopleId FROM dbo.People p JOIN dbo.TagPerson tp ON tp.PeopleId = p.PeopleId AND tp.Id = @BlueToolbarTagId\n    UNION\n    SELECT p.SpouseId FROM dbo.People p JOIN dbo.TagPerson tp ON tp.PeopleId = p.PeopleId AND tp.Id = @BlueToolbarTagId\n    WHERE ISNULL(p.ContributionOptionsId, IIF(p.MaritalStatusId = 2, 2, 1)) = 2\n)\nSELECT  CreditGiverId,\n        SpouseId,\n        Amount,\n        DATEPART(YEAR, Date) Y,\n        c.PeopleId,\n        Date,\n        c.FundId\n        INTO #t\n    FROM dbo.Contributions2('1/1/2016','12/31/2018',0,0,NULL,NULL, NULL) c\n    WHERE EXISTS(SELECT NULL FROM givingunits WHERE PeopleId IN (c.CreditGiverId, c.CreditGiverId2))\n    AND Amount > 0\n\n;WITH giving AS (\n    SELECT\n        CreditGiverId, SpouseId\n        , ISNULL((SELECT SUM(Amount)\n            FROM #t\n            WHERE CreditGiverId = tt.CreditGiverId\n            AND Y = 2016), 0) Tot2016\n        , ISNULL((SELECT SUM(Amount)\n            FROM #t\n            WHERE CreditGiverId = tt.CreditGiverId\n            AND Y = 2017), 0) Tot2017\n        , ISNULL((SELECT SUM(Amount)\n            FROM #t\n            WHERE CreditGiverId = tt.CreditGiverId\n            AND Y = 2018), 0) Tot2018\n    FROM #t tt\n    GROUP BY tt.CreditGiverId, tt.SpouseId\n)\nSELECT\n    p.PeopleId,\n    Head = p.Name2,\n    Spouse = sp.PreferredName,\n    g.Tot2016,\n    g.Tot2017,\n    g.Tot2018\nFROM giving g\nJOIN dbo.People p ON p.PeopleId = g.CreditGiverId\nLEFT JOIN dbo.People sp ON sp.PeopleId = g.SpouseId\nORDER BY p.Name2\n\nDROP TABLE #t\n";
            var    result = model.SqlGrid(sql);

            result.Length.ShouldBeGreaterThan(0);
        }