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,
ты вообще о вложенных запросах что-то слышал?
13.
Tima94 (20.04.2013 / 23:09)
12.
Жадный лепрекон, по крайней мере он постарался помочь автору, пусть не правильно но он попробовал помочь) а ты сидишь троллишь его а сам вообще тут ничего не написал полезного
14.
Серега (20.04.2013 / 23:53)
Жадный лепрекон (20 Апреля 2013 / 22:03)
11. KpuTuK, ты вообще о вложенных запросах что-то слышал?
Я не слышал... Обяъсни "своими словами"!
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