2015-12-14 5 views
1

У меня есть запрос. Я добавляю два значения столбца в один производный столбец, тогда я хочу получить отличие от производного столбца и уже существующего столбца. Но я получаю некоторую неизвестную ошибку колонкиОтличие от производного столбца в sql

SELECT `st_id` , `fee` , SUM( `total`) AS total, SUM( `books`) AS book,SUM( `uniform`) AS uniform,SUM( `total` + `books` + `uniform`) AS amount,SUM( `amount` - `paid`) AS pending 
    FROM `fee_tbl` 
    WHERE `st_id` 
    IN (40, 504, 533, 640, 817, 944) 
    GROUP BY `fee` , `st_id` 

Кто-нибудь знает, что может быть не так?

+0

Вы не можете использовать псевдоним на другой расчет, если его от полученный запрос. Вы должны использовать сумму (сумма) (сумма) + сумма (книги) + ...) как сумма' и так для других. –

+0

Я не получаю это.Plz дать объяснение – robins

+0

В этом случае, что мы делаем ..? – robins

ответ

0

Если вы ищете amount и pending для конкретного fee и st_id

Тогда

SELECT 
    `st_id` , 
    `fee` , 
    SUM( `total`) AS total, 
    SUM( `books`) AS book, 
    SUM( `uniform`) AS uniform, 
    SUM( `total` + `books` + `uniform`) AS amount, 
    SUM( `total` + `books` + `uniform` - `paid`) AS pending 
FROM `fee_tbl` 
WHERE `st_id` IN (40, 504, 533, 640, 817, 944) 
GROUP BY `fee` , `st_id` 

или

SELECT 
    `st_id` , 
    `fee` , 
    SUM( `total`) AS total, 
    SUM( `books`) AS book, 
    SUM( `uniform`) AS uniform, 
    SUM( `total`) + SUM( `books`) + SUM( `uniform`) AS amount, 
    SUM( `total`) + SUM( `books`) + SUM( `uniform`) - SUM(`paid`) AS pending 
FROM `fee_tbl` 
WHERE `st_id` IN (40, 504, 533, 640, 817, 944) 
GROUP BY `fee` , `st_id` 
Смежные вопросы