|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
Подскажите чайнику куда двигаться. В 1С есть такая штука МояТаблица.Группировать("КолонкаГруппировки", "КолонкаДанных") Получаешь в результате таблицу с итогами по колонке(ам) группироки. А можно ли что-то подобное сделать в C# с DataTable? Насколько я понимаю SQL запрос (или что-то в этом роде) к DataTable сделать нельзя? Уж очень не хочеться тупым перебором строк итоги считать. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 06:37 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
Все можно. Главное - забыть про 1Ц и не считать этот "хашавшевет" эталоном. К датасетам можно применять Filter. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 10:43 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekУж очень не хочеться тупым перебором строк итоги считать.Pek, а вам известно про функции SQL? В частности, про SUM? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 10:46 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 11:27 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
i see, Про функции SQL я знаю. Дело в том что мне нужно результаты пяти-шести SQL запросов к базе данных объеденить в одной таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 19:40 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
во-первых обратите там внимание на AGGREGATES Pekобъеденить в одной таблице. во вторых может все таки делать это на сервере? или просто запрос написать не можете? скажите - в чем сложность, могет поможем :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 19:50 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
МСУ в сандалиях Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
МСУ, это LiNQ ? Просто я никогда не видел её в действии. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 20:24 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
winsky!, Да не то что-бы большие сложности были. Просто прикидываю и так и эдак; как лучше сделать. Кстати вопрос: что быстрее, один громоздкий SQL запрос в базу данных или несколько маленьких попроще и последующей развлечение с DataTable-ами? Кстати не надо на 1С бочку катить :) - весьма уважаемая (мной) программа. Видели бы вы в чем они тут в Канаде работают, такое г... (по крайней мере с точки зрения интерфейса). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 22:28 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekКстати вопрос: что быстрее, один громоздкий SQL запрос в базу данных или несколько маленьких попроще и последующей развлечение с DataTable-ами? один PekКстати не надо на 1С бочку катить :) - весьма уважаемая (мной) программа. Не программа, а платформа. по крайней мере они так её называют PekВидели бы вы в чем они тут в Канаде работают, такое г... (по крайней мере с точки зрения интерфейса). Зато у них есть кленовый сироп ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 22:37 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
winsky!, Ну ладно, излагаю вводную :) Имеется база данных (AS400). У меня к ней доступ на чтение либо через OLE-драйвер либо через ODBC-драйвер. Не знаю какой быстрее, пользуюсь OLE т.к. в строке подключения там можно IP сервера указывать. А ODBC драйвер требует имя источника данных, а они на разных компах могут по разному обзываться. Имеется таблица с данными бух.итогов. Колонки которые нам нужны: Фирма (100, 101, 102, ... и т.д.) БухСчет (1001, 1002, 1003, ... и т.д.), ГодИтогов (2006, 2007, ... и т.д.), МесяцИтогов (от 1 до 12), СуммаДеб (положительное число; итоговые обороты по дебету счета за месяц года), СуммаКред (отрицательное число; итоговые обороты по кредиту счета за месяц года). Итоги на начало периодов система хранит в извращенной форме для разных фирм по разному. Их может не быть вообще для некоторых фирм. Тогда чтобы узнать итоги на начало 2008 года 11 месяца нужно сложить СуммаДеб и СуммаКред за все периоды где Год<2008 и за все периоды где Год=2008 и Месяц<11. А если они есть, то храняться в той же таблице, но Месяц=0. Т.е. если Год=2007 и Месяц=0 то сложив СуммаДеб и СуммаКред мы получим итоги на начало 2007 года. Т.е. для фирмы 100 итоги могут быть посчитаны на начало 2007 года, для фирмы 200 на начало 2003 года, для фирмы 300 их нет вообще. Власти над процессом расчета итогов я не имею. Теперь нужен отчет: для одной заданой фирмы для одного выбранного года и месяца нужно получит следующее: бухСчет ВыбраныйМесяц СледМесяц 1000 ОстНаКонецМес ОстНаКонецМес 1001 ОстНаКонецМес ОстНаКонецМес 1002 ОстНаКонецМес ОстНаКонецМес ... подитог: Итого Итого 2001 ОборотЗаМесяц ОборотЗаМесяц 2002 ОборотЗаМесяц ОборотЗаМесяц 2003 ОборотЗаМесяц ОборотЗаМесяц ... подитог: Итого Итого Вот сижу и думаю как лучше сделать. На выполнение пяти запросов ушло 1 час 10 минут: - найти были ли посчитаны итоги на начало периода и если да то получить год и месяц; - посчитать итоги на начало Года выбранного месяца; - посчитать обороты с начала Года выбр.месяца до месяца предшеств.выбранному месяцу; - посчитать обороты за выбр.месяц; - посчитать обороты за след.месяц; Подскажите в общих чертах как лучше сделать кто может? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:02 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekНу ладно, излагаю вводную :) не правильно ставится задача! Надо так: PekНу ладно, излагаю вводную, 400$ :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:04 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
<fukfyl>pth, Эй, про финансовый кризис кто нибудь слышал? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:16 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
ладно: PekНу ладно, излагаю вводную, 250$ :)[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:18 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
И еще вопрос. В 1С есть СтрокаСостояние("пишу чего хочу") и внизу окошка 1С отображается это сообщение. А в C# есть чего нибудь подобное? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:20 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekА в C# есть чего нибудь подобное?Да куда СиШарпу до 1Ц ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:21 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekВ 1С есть СтрокаСостояние("пишу чего хочу") и внизу окошка 1С отображается это сообщение. никогда не признавал в 1С это русскоподобное именование членов, функций, операторов намного приятнее созерцать StatusString("пиши исчо"); ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:27 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekДело в том что мне нужно результаты пяти-шести SQL запросов к базе данных объеденить в одной таблице. Ну так и пишите в названии сабжа. При чем тут "группировка DataTable"? Что мешает написать запрос к серверу на выборку нужных данных? Либо, сджойнить уже готовые наборы на клиенте. А-ля: Код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:28 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekА ODBC драйвер требует имя источника данных, а они на разных компах могут по разному обзываться. Неправда. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:40 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
i see, Для каждой работы нужен соответствующий инструмент. Конечная цель - поднять бабла побольше. И на 1С я уж поимел гораздо больше чем мог бы поднять (в данных обстоятельствах) на C#, C++, Ассемблере,... (нужное подставить). За что 1С бесконечно благодарен :) Просто тогда у меня был один tool, сейчас другой... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:43 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
Буква У, Вот connectionString я использую (может я чего не догоняю): else if (myFactory == "System.Data.OleDb.OleDbFactory") { Csb.Add("Provider", "MYPROVIDERNAME"); Csb.Add("Data Source", "191.22.21.10"); Csb.Add("User Id", "myID"); Csb.Add("Password", "myPswd"); Csb.Add("Default Collection", "MYCOLLECTIONNAME"); } else if (myFactory == "System.Data.Odbc.OdbcFactory") { Csb.Add("Dsn", "SOURCENAME"); Csb.Add("UID", "myID"); Csb.Add("PWD", "myPswd"); } если я пытаюсь в ODBC засунуть IP сервера вместо имени источника данных то он меня нафиг посылает может это от драйвера зависит? и кстати, есть ли разница по скорости между OLE и ODBC? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:51 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
МСУ фпечкеPekДело в том что мне нужно результаты пяти-шести SQL запросов к базе данных объеденить в одной таблице. Ну так и пишите в названии сабжа. При чем тут "группировка DataTable"? Что мешает написать запрос к серверу на выборку нужных данных? Либо, сджойнить уже готовые наборы на клиенте. А-ля: + Код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Дык сабж такой потому что мне нужно узнать - можно или нельзя группировать DataTable а не "помогите написать мега-SQL-запрос". Я ж чайник. Я просто вижу чего мне нужно получить на выходе, вижу какая структура данных и пытаюсь с наименьшими затратами и наибольшей унифицированостью сделать tool. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:54 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
Pekи кстати, есть ли разница по скорости между OLE и ODBC? OLEDB круче ODBC - багоплодилка ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 23:57 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
Буква ЙPekи кстати, есть ли разница по скорости между OLE и ODBC? OLEDB круче ODBC - багоплодилка Ну вот, если так то мне тогда и заморачиваться нечего. OLEDB IP сервера понимает, мне больше ничего и не надо. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2009, 00:00 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
PekДык сабж такой потому что мне нужно узнать - можно или нельзя группировать DataTable а не "помогите написать мега-SQL-запрос". Я же Вам уже ответил - можно. Вы, вообще, читаете ответы, которые Вам адресованы? Pekсделать tool. Шо за зверь? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2009, 00:02 |
|
группировка DataTable или SQL запрос к DataTable
|
|||
---|---|---|---|
#18+
Pek Я ж чайник. Я просто вижу чего мне нужно получить на выходе, вижу какая структура данных и пытаюсь с наименьшими затратами и наибольшей унифицированостью сделать tool. Наймите специалиста. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2009, 00:19 |
|
|
start [/forum/topic.php?fid=20&msg=35814847&tid=1400102]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 277ms |
total: | 461ms |
0 / 0 |