| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > объединение данных из неск.таблиц |
| Автор: motorway 10.9.2008, 15:32 |
| Есть таблица с id людей и их именами, с id людей и зарплатами, с id людей и премиями, с id людей и штрафами. Как написать запрос, выводящий для всех людей суммарные деньги=зарплата+все премии-все штрафы? MS SQL |
| Автор: Akina 10.9.2008, 16:06 | ||
Руками, блин!
|
| Автор: motorway 10.9.2008, 16:30 |
| Понимаю, что не ногами. После изменения названий на мои, получаю ошибку: 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 должно быть? |
| Автор: Akina 10.9.2008, 21:11 |
Ну так дай СВОИ названия. А лучше структуру таблиц с указанием ключей и связей. Конечно. Издержки копипаста. |
| Автор: motorway 10.9.2008, 22:09 | ||||
| Названия я просто изменил, суть не в этом. Если как в твоих названиях, то ошибка была бы "p.name ..." (у меня employees). Правильно ли я понимаю, что условие выбора - одинаковые id во всех таблицах, т.е. относятся к одному человеку? Можно ли это сделать как where
Еще проблема у меня в том, что если хотя бы одного поля у человека нет, напр., нет штрафов, то он не выводится в рез-те. Но isnull у меня не помогает. --- вот сделал код путем проб, здесь названия таблиц другие, но это не важно, суть понятна
Но не совсем его понял до конца |