SQL запрос для вывода зарплаты

1. Николай (19.04.2013 / 12:48)
Таблица заполнена фамилией и зарплатой надо вывести зарплату с вычетом %

Менее 15000 то 10% налога
От 15000 до 50000 15% налог

Но мне нужен только запрос на языке SQL

2. KpuTuK (19.04.2013 / 13:08)
а что если как-нибудь так
<?php
$many = mysql_result(mysql_query("SELECT `zarplata` FROM `user` WHERE `id` = '$user[id]' "));
$real_many = $many - ($many / 10);
?>

тоесть мы получаем из базы зарплату юзера и вычитаем процент (зарплата деленная на 10)

3. Николай (19.04.2013 / 13:48)
2. KpuTuK, нужно без php только на языке sql

4. Владислав (19.04.2013 / 13:49)
3. Trance Mission, в каком формате ответ нужен?

5. Николай (19.04.2013 / 13:55)
4. byvlad, фамилия ( зарплата уже с вычтенным % налогом)

6. Владислав (19.04.2013 / 14:03)
5. Trance Mission, структуру таблиц скинь
SELECT `people`.`surname`, `people`.`salary`, (IF(`people`.`salary` <= 15000, (`people`.`salary`-(`people`.`salary`*0.1)), IF(`people`.`salary` > 15000 AND `people`.`salary` <= 50000, (`people`.`salary`*0.15), `people`.`salary`))) AS `final_salary` FROM `people`
как-то так))

7. Назар (19.04.2013 / 14:13)
"SELECT (`zarplata` * (100 - $percent)/100) as `without_percent` FROM `user` WHERE `id` = '$user[id]' "
Ну дочитал про условия(

8. Николай (19.04.2013 / 15:02)
6. byvlad,да какая разница какая структура главное есть 2 поля например
fio varchar(50) not null,
zp int(11) not null


да и все

9. Удаленный (19.04.2013 / 15:36)
select fio, zp,
case zp<15000
when true then zp-zp*0.1
when false then zp-zp*0.15
end as zp
from
`user`

Добавлено через 09:16 сек.
SELECT name,
IF(sum >= 15000, sum*0.85, sum * 0.90) as sum
FROM user


или так

10. Владислав (19.04.2013 / 15:57)
SELECT `people`.`surname`, `people`.`salary`, (IF(`people`.`salary` <= 15000, (`people`.`salary`-(`people`.`salary`*0.1)), IF(`people`.`salary` > 15000 AND `people`.`salary` <= 50000, `people`.`salary`-(`people`.`salary`*0.15), `people`.`salary`))) AS `final_salary` FROM `people`
ну этот рабочий, специально проверил только что

11. KpuTuK (19.04.2013 / 18:34)
Trance Mission (19 Апреля 2013 / 13:48)
2. KpuTuK, нужно без php только на языке sql
<?php
mysql_result(mysql_query("SELECT zarplata  -  (". mysql_result(mysql_query("SELECT zarplata  FROM `users` WHERE `id` = '$user[id]' LIMIT 1"), 0) ."  /  10) FROM `users` WHERE `id` = '$user[id]' LIMIT 1"), 0);
?>
в два запроса
так попробуй :)  



12. ZaRiN (20.04.2013 / 23:03)
11. KpuTuK, facepalm ты вообще о вложенных запросах что-то слышал? D

13. Tima94 (20.04.2013 / 23:09)
12. Жадный лепрекон, по крайней мере он постарался помочь автору, пусть не правильно но он попробовал помочь) а ты сидишь троллишь его а сам вообще тут ничего не написал полезногоfacepalm

14. Серега (20.04.2013 / 23:53)
Жадный лепрекон (20 Апреля 2013 / 22:03)
11. KpuTuK, facepalm ты вообще о вложенных запросах что-то слышал? D
Я не слышал... Обяъсни "своими словами"!

15. ZaRiN (21.04.2013 / 00:48)
14. MEFISTOF, http://www.sql.ru/docs/sql/u_sql/ch11.shtml

Добавлено через 02:27 сек.
13. doct0r, во 1 по-твоему я должен предлагать новый способ решения? Выше уже дали несколько вариантов
Во 2 - узнай сначала что такое троллинг
В 3 - если критик и дальше будет юзать такие запросы, то ничего хорошего с этого не выйдет, так что мой пост намного полезнее твоего.

16. KpuTuK (21.04.2013 / 08:11)
15. Жадный лепрекон,
тоесть
<?
mysql_result(mysql_query("SELECT zarplata  -  IN  ( SELECT zarplata  FROM `users` WHERE `id` = '$user[id]' LIMIT 1 ) /  10) FROM `users` WHERE `id` = '$user[id]' LIMIT 1"), 0);
?>
как то так??

Добавлено через 09:00 сек.
13. doct0r, а почему не правильно?? результат то даст правильный))

17. Петр (21.04.2013 / 13:10)
10. byvlad, можно несколько упростить - не писать `people`.(работа с одной таблицей ведь), умножать на 0.9 и 0.85 вместо вычета процентов.

18. Николай (21.04.2013 / 13:17)
16. KpuTuK, потому что не правелно ты даешь мне код php а я тебе уже 2 раз говорю мне надо чистый SQL..

----------------------
Cпасибо ребятам выше кто помог. правда не знаю провельно или нет, точнее скажу в понедельник....

19. Владислав (22.04.2013 / 20:03)
17. Im-ieee, привычка уже, со множеством таблиц когда работаешь...)

Добавлено через 01:01 сек.
SELECT `surname`, `salary`, (IF(`salary` <= 15000, `salary`*0.9, IF(`salary` > 15000 AND `salary` <= 50000, `salary`*0.85, `salary`))) AS `final_salary` FROM `people`

URL: https://visavi.net/topics/37577