Страница: 1 | 2 |
Вопрос: Я чайник, я об этом знаю, но мне нужна помощь
Добавлено: 21.02.07 20:56
Автор вопроса: grimmy | ICQ: 218458819
Чуть-чуть знаю ВБ, чуть-чуть Акцесс, занималась раньше постановками, а тут жизнь приперла. Так вот - я у меня есть две таблицы - в одной исходные данные с, в другой повторяющиеся строки по исходным данным. Могла бы по-проще объяснить на примере, но специфика - перестрахование. Мне нужно из двух таблиц создать одну и чтобы данные второй таблице суммировались для каждой совпадающей записи (по параметрам двух полей) с исходной таблицей. Создаю запрос по группировке и суммированию - мне выдают ошибку - пропущен оператор LEVEL. я с таким оператором не работала. Как им пользоваться
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
Eugeny
Вопросов: 0
Ответов: 26
Профиль | | #1
Добавлено: 21.02.07 21:08
в Access нет такого оператора LEVEL (может в ORACLE поискать)
Номер ответа: 2
Автор ответа:
grimmy
ICQ: 218458819
Вопросов: 1
Ответов: 10
Профиль | | #2
Добавлено: 21.02.07 21:15
спасибо, я в курсе, но почему он выдает такую ошибку? я этот оператор не использовала. Как мне создать запрос правильно?
таблица1
серия договора номер договора нетто-премия
АС 1 100
АС 2 500
Таблица 2
серия договора номер договора Оплачено
АС 1 50
АС 2 200
АС 1 20
АС 2 150
Хочу получить
серия договора номер договора Оплачено Нетто-премия Оплачено
АС 1 50 100 70
АС 2 200 500 350
Номер ответа: 3
Автор ответа:
grimmy
ICQ: 218458819
Вопросов: 1
Ответов: 10
Профиль | | #3
Добавлено: 21.02.07 21:20
Серии отличаются
Номер ответа: 4
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #4
Добавлено: 21.02.07 22:01
давай что-ли названия полей и таблиц, ща напищем.
Номер ответа: 5
Автор ответа:
grimmy
ICQ: 218458819
Вопросов: 1
Ответов: 10
Профиль | | #5
Добавлено: 21.02.07 22:16
спасибо, я в курсе, но почему он выдает такую ошибку? я этот оператор не использовала. Как мне создать запрос правильно?
таблица1
серия договора номер договора нетто-премия
АС 1 100
АС 2 500
Таблица 2
серия договора номер договора Оплачено
АС 1 50
АС 2 200
АС 1 20
АС 2 150
Хочу получить
серия договора номер договора Нетто-премия Оплачено
АС 1 100 70
АС 2 500 350
Номер ответа: 6
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #6
Добавлено: 21.02.07 22:18
SELECT T1.seriadog, T1.numberdog, T1.nettopremya, Sum(T2.oplacheno) AS SumOfoplacheno
FROM T1, T2 WHERE T1.seriadog=T2.seriadog AND T1.numberdog=T2.numberdog
GROUP BY T1.seriadog, T1.numberdog, T1.nettopremya;
Номер ответа: 7
Автор ответа:
grimmy
ICQ: 218458819
Вопросов: 1
Ответов: 10
Профиль | | #7
Добавлено: 21.02.07 22:25
SELECT [Бордеро рисков Москва РЕ].[Серия договора], [Бордеро рисков Москва РЕ].[Номер договора], [Бордеро рисков Москва РЕ].Страхователь, [Бордеро рисков Москва РЕ].Объект, [Бордеро рисков Москва РЕ].[Период включения], [Бордеро рисков Москва РЕ].[Нетто-премия Перестраховщика], оплаты.[Серия договора страхования], оплаты.[Номер договора страхо-вания], оплаты.[Наименование страхователя], оплаты.[Процент оплаты], оплаты.[Курс оплаты], оплаты.[Период оплаты], ([Нетто-премия Перестраховщика]*[Процент оплаты]/100) AS [Премия к оплате в дол], ([Премия к оплате в дол]*[Курс оплаты]) AS [Премия к оплате в руб]
FROM [Бордеро рисков Москва РЕ], оплаты
WHERE ((([Бордеро рисков Москва РЕ].[Серия договора])=[оплаты].[Серия договора страхования]) AND (([Бордеро рисков Москва РЕ].[Номер договора])=[оплаты].[Номер договора страхо-вания]) AND ((оплаты.[Серия договора страхования])=[Бордеро рисков Москва РЕ].[Серия договора]) AND ((оплаты.[Номер договора страхо-вания])=[Бордеро рисков Москва РЕ].[Номер договора]));
Для каждого риска из "Бордеро премия Москва РЕ" нужна сумма [Премия к оплате в дол] и сумма [Премия к оплате в руб] при совпрадении полей номер договора и одновременно серия договора
А еще впрос попутно - как сделать побобный запрос при несовпадении полей? типа если серия логовора не равна и номер договора не равен, то вывести в таблицу. Я не нашла оператор "не равно"
Номер ответа: 8
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #8
Добавлено: 21.02.07 22:33
1)
... SUM ()
GROUP BY
2) оператор <> "не равно"
или NOT IN ()
Номер ответа: 9
Автор ответа:
grimmy
ICQ: 218458819
Вопросов: 1
Ответов: 10
Профиль | | #9
Добавлено: 21.02.07 22:35
Извиняюсь за орфографию - у меня еще и клава глючит. Эх, нету времени учиться программированию, а тоя на основании моих постановок могла и все написать. Отдельные моменты тяжело опичывать, а тем более ошибки в контесте общей б/д. И вот пытаюсь сочинить аналитику для договоров облигаторного перестрахования на базе эксцедента сумм. на основании своей собственной постановки для опытного программиста...
Номер ответа: 10
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #10
Добавлено: 21.02.07 22:38
Удачи
Номер ответа: 11
Автор ответа:
grimmy
ICQ: 218458819
Вопросов: 1
Ответов: 10
Профиль | | #11
Добавлено: 21.02.07 22:48
спасибо, вот только помощь бы была была сепер кстати. Спасибо.
Номер ответа: 12
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #12
Добавлено: 21.02.07 22:50
Так а что осталось неясным?
Номер ответа: 13
Автор ответа:
grimmy
ICQ: 218458819
Вопросов: 1
Ответов: 10
Профиль | | #13
Добавлено: 21.02.07 22:51
пробовала по указанным вариантам - пишет ошибку про LEVEL
Номер ответа: 14
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #14
Добавлено: 21.02.07 23:01
ладно, посмотрим, может где синтаксис хромает,
уж больно названия таблиц и полей противные
Номер ответа: 15
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #15
Добавлено: 21.02.07 23:16
Засада в предложении SELECT,
...AS [Премия к оплате в дол], ([Премия к оплате в дол]*[Курс оплаты]) AS [Премия к оплате в руб]
НЕ будет вычисляться
поле [Премия к оплате в руб] должно быть пересчитано заново не используя "AS [Премия к оплате в дол]"