![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Есть таблица с id людей и их именами, с id людей и зарплатами, с id людей и премиями, с id людей и штрафами.
Как написать запрос, выводящий для всех людей суммарные деньги=зарплата+все премии-все штрафы? MS SQL -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Руками, блин!
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Понимаю, что не ногами. После изменения названий на мои, получаю ошибку:
Column 'employees.name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. И, кстати, в последнем join, там не p.id=f.id должно быть? Это сообщение отредактировал(а) motorway - 10.9.2008, 16:31 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Ну так дай СВОИ названия. А лучше структуру таблиц с указанием ключей и связей. Конечно. Издержки копипаста. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
motorway |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Названия я просто изменил, суть не в этом. Если как в твоих названиях, то ошибка была бы "p.name ..." (у меня employees). Правильно ли я понимаю, что условие выбора - одинаковые id во всех таблицах, т.е. относятся к одному человеку? Можно ли это сделать как
where
Еще проблема у меня в том, что если хотя бы одного поля у человека нет, напр., нет штрафов, то он не выводится в рез-те. Но isnull у меня не помогает. --- вот сделал код путем проб, здесь названия таблиц другие, но это не важно, суть понятна
Но не совсем его понял до конца Это сообщение отредактировал(а) motorway - 10.9.2008, 22:38 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Прочтите внимательно ман по тому, чем отличаются Full, Left/Right и Inner связывания. До полного понимания. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |