Я попробовал этот запрос, чтобы получить следующие данныеGROUP_CONCAT не работает в подзапрос
SELECT
GROUP_CONCAT(sb.p_id) ,
TRUNCATE(SUM(sb.total_amount) , 2) grand_total,
TRUNCATE(SUM(sb.amount_wot) , 2) sale_amount,
(SELECT TRUNCATE(SUM((item_qty * item_price) * tax_price /100) , 2)
FROM ci_bill_items
WHERE bill_id IN (GROUP_CONCAT(sb.p_id))) tax_amount
FROM ci_suppliers_bills sb
WHERE sb.p_id >0
Я получил ожидаемый результат, но не tax_amount
его возвращение null
, но если я запустить отдельный запрос типа:
SELECT TRUNCATE(SUM((item_qty * item_price) * tax_price /100) , 2)
FROM ci_bill_items
WHERE bill_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 71)
Затем я получаю правильный результат. Но все, что я хочу в одном запросе, как первый, group_concat
не работает, как я пытался bill_id IN (GROUP_CONCAT(sb.p_id))
? Помощь очень много.
'GROUP_CONCAT' возвращает строку, а не список. – Barmar
@Barmar да, но он должен работать в 'bill_id IN()' это условие? Пожалуйста, сделайте меня правильным, если я ошибаюсь. –