powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Сложный отчет.
4 сообщений из 4, страница 1 из 1
Сложный отчет.
    #39609547
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро, коллеги!
Нужна Ваша помощь.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
        public class WorkTable
        {
            public int TableID { get; set; }
            public short c1 { get; set; }
            public UInt16 c2 { get; set; }
            public Int16 c3 { get; set; }
            public Int16 c4 { get; set; }
            public UInt32 c5 { get; set; }
            public UInt64 c6 { get; set; }
            public Int64 c7 { get; set; }
            public Int16 c8 { get; set; }
            public Int16 c9 { get; set; }
            public Int16 c10 { get; set; }
            public Int16 c11 { get; set; }
            public Int16 c12 { get; set; }
            public Int16 c13 { get; set; }
            public Int16 c14 { get; set; }
            public Int16 c15 { get; set; }
            public Int16 c16 { get; set; }
            public Int16 c17 { get; set; }
            public Int16 c18 { get; set; }
            public Int16 c19 { get; set; }
            public Int16 c20 { get; set; }
            public Int16 c21 { get; set; }
            public Int16 c22 { get; set; }
            public Int16 c23 { get; set; }
            public int c24 { get; set; }
            public Int16 c25 { get; set; }
            public int c26 { get; set; }
            public Int16 c27 { get; set; }
            public Int16 c28 { get; set; }
            public Int16 c29 { get; set; }
            public Int16 c30 { get; set; }
            public Int16 c31 { get; set; }
            public int total { get; set; }
        }

            var returnVal = db.Database.SqlQuery<WorkTable>(
                "SELECT TableID, [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17], " +
                "                [18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[Итого] " +
                "FROM(" +
                "    SELECT TableID " +
                "           , CASE WHEN [MonthDay] IS NULL THEN 'Итого' ELSE [MonthDay] END AS [MonthDay] " +
                "           , CASE WHEN [MonthDay] IS NULL THEN [AllSumm] ELSE [SumTime] END AS [SumTime] " +
                "    FROM(SELECT w.TableID " +
                "                 , [MonthDay] = DATENAME(DAY, DateTimeFrom) " +
                "                 , [SumTime] = CASE " +
                "                                    WHEN w.ContractID < 0 AND w.ContractID != -3 THEN w.ContractID " +
                "                                    ELSE DATEDIFF(MINUTE, DateTimeFrom, DateTimeTill) " +
                "                               END " +
                "                , [AllSumm] = SUM(DATEDIFF(MINUTE, DateTimeFrom, DateTimeTill)) " +
                "            FROM dbo.WorkTable w " +
                "                 INNER JOIN dbo.Employees e ON e.TableID = w.TableID " +
                "                 INNER JOIN dbo.Contracts c ON c.ContractID = w.contractID " +
                "                 INNER JOIN dbo.Departments d ON d.DepartmentID = e.DepartmentID " +
                "            WHERE w.TableID in(6426, 6554) " +
                "                  AND MONTH(DateTimeFrom) = 2 " +
                "                  AND YEAR(DateTimeFrom) = 2018 " +
                "                  AND(c.departmentID = d.DepartmentID OR c.departmentID = -1) " +
                "            GROUP BY w.TableID, GROUPING SETS((w.ContractID, DateTimeFrom, DateTimeTill), ()) " +
                "        ) b " +
                "    ) t " +
                " PIVOT(SUM([SumTime]) FOR [MonthDay] in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17], " +
                "                                         [18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31], [Итого]) " +
                "       ) AS test_pivot; ").ToList();




В режима дебага смотрю значения переменной returnVal, и кроме поля TableID все остальные равны 0.
Перепробовал различные типы (видно из класса WorkTable), не помогло.
Как решить проблему? Помогите плиз.
...
Рейтинг: 0 / 0
Сложный отчет.
    #39609553
oaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,
Код: sql
1.
SELECT TableID, [1] as c1,[2] as c2,...

так может попробуй
...
Рейтинг: 0 / 0
Сложный отчет.
    #39609572
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oakenvadipok,
Код: sql
1.
SELECT TableID, [1] as c1,[2] as c2,...

так может попробуй


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        public class WorkTable
        {
            public int TableID { get; set; }
            public Int64 c1 { get; set; }
            public Int64 c2 { get; set; }
            public Int64 c3 { get; set; }


                "SELECT TableID, ISNULL([1], 0) as c1, ISNULL([2], 0) as c2, ISNULL([3], 0) as c3, ISNULL([4], 0) as c4, ISNULL([5], 0) as c5, ISNULL([6], 0) as c6, " +
                                "ISNULL([7], 0) as c7, ISNULL([8], 0) as c8, ISNULL([9], 0) as c9, ISNULL([10], 0) as c10, ISNULL([11], 0) as c11, ISNULL([12], 0) as c12, " +
                                "ISNULL([13], 0) as c13, ISNULL([14], 0) as c14, ISNULL([15], 0) as c15, ISNULL([16], 0) as c16, ISNULL([17], 0) as c17, ISNULL([18], 0) as c18, " +
                                "ISNULL([19], 0) as c19, ISNULL([20], 0) as c20, ISNULL([21], 0) as c21, ISNULL([22], 0) as c22, ISNULL([23], 0) as c23, ISNULL([24], 0) as c24, " +
                                "ISNULL([25], 0) as c25, ISNULL([26], 0) as c26, ISNULL([27], 0) as c27, ISNULL([28], 0) as c28, ISNULL([29], 0) as c29, ISNULL([30], 0) as c30, " +
                                "ISNULL([31], 0) as c31, ISNULL([Итого], 0) as total " +



Вот так решилась проблема.
...
Рейтинг: 0 / 0
Сложный отчет.
    #39609573
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oaken,

Спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Сложный отчет.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]