Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Помогите с sql-запросом...  [new]
telz
Member

Откуда:
Сообщений: 54
Здравствуйте! Ребят, если не сложно, подскажите, пожалуйста, какой должен быть SQL-запрос в таком случае (пишу на C#), база - MS Access.
Имеется 3 таблицы, связанные. Но это для темы не важно. Пусть запрос будет к одной таблице. У этой таблицы есть числовое ссылочное поле RefTowns и еще десятков 8 числовых полей. Для простоты пусть будет так: есть поле числовое ссылочное поле RefTowns и еще 1 поле Field1.
В результате выполнения запроса нужно получить таблицу, в которой у кортежей с одинаковыми значениями RefTowns будут суммироваться значения поля Field1. Т.е. пусть у нас всего 120 кортежей, в которых значения RefTowns встречаются от 1 до 10, а значения Field1 могут быть любыми, а на "выходе" нужна таблица с 10ю строками согласно значениям RefTowns, в которых суммируется данные поля Field1 для одинаковых значений RefTowns. Спасибо!
31 май 07, 22:16    [4215020]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с sql-запросом...  [new]
Katrinmc
Member

Откуда: Мурманск
Сообщений: 43
SELECT REFTown, SUM(Field1) as SummField
From Table1
GROUP BY REFTown
31 май 07, 22:59    [4215069]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с sql-запросом...  [new]
telz
Member

Откуда:
Сообщений: 54
Спасибо большое! Сам не пойму как, но про GROUP BY забыл напрочь. Запрос выполнил - вроде бы работает. Спасибо!
31 май 07, 23:06    [4215077]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с sql-запросом...  [new]
telz
Member

Откуда:
Сообщений: 54
С одним вопросом помогли - спасибо большое! Но у меня появился другой вопрос. Значит, проблема такова. Как я уже говорил, пусть (для простоты) главная таблица MainTable состоит из двух полей - Field1 и RefTowns. Поле RefTowns ссылается на ключевое поле другой таблицы - CitiesAndRegionsTable, состоящей тоже из двух полей - ключевого KeyCityNumber (числовое) и CityOrRegionName (текстовое, содержит название города или региона). Так вот, в результате запроса нужно получить таблицу, в которой будут не только суммы, "собранные" по городам, но и сами названия городов.
Получается что-то вроде такого:

SELECT SUM(MainTable.Field1), CitiesAndRedionsTable.CityOrRegionName
FROM (MainTable INNER JOIN CitiesAndRegionsTable ON MainTable.RefTowns = CitiesAndRedionsTable.KeyCityNumber)
GROUP BY RefTowns

Естественно, запрос не обрабатывается, т.к. неправильный - что не правильно, выделил жирным шрифтом.
Количество кортежей в результирующей таблице естественно равно количеству строк в таблице CitiesAndRedionsTable, т.к. группировка идет по ключам.
Как в этом случае поступить? Спасибо большое!
1 июн 07, 14:12    [4218380]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить