2016-09-07 2 views
1

Я новичок здесь, и у меня есть блоки кодировщиков, пожалуйста, помогите, я пытаюсь получить несколько результатов из одного запроса и создать новые строки значений из it.eg Я хочу, чтобы строка 1 генерировать строки 2 и 3, где строка 1 является общей транзакцией, строка 2 представляет интерес из строки 1, которая составляет 1%, а комиссия, сделанная в строке 3, равна 0,5%, можно ли генерировать запрос, который будет выводить следующие результаты?Автоматическое создание нескольких строк из одного запроса php mysql

Date  | End Date | Shop | Trans | Amount | Ref No 
-----------|-------------|--------|----------|----------|--------- 
16/9/2016 | 16/10/2016 | FGB | Payed | 10 000 | 251   
15/10/2016 | xxxxxxxxx | xxx | xxxx | 100 | 251  
15/10/2016 | xxxxxxxxx | xxx | xxxx | 50  | 251  

Эти результаты должны быть в одном столе, возможно ли это? Заранее спасибо.

+0

Запросы не могут генерировать новые строки из ничего. вы можете легко написать код для INSERT этих строк для вас, но вы не можете иметь запрос 'select ...' -type взять одну строку и магически превратить ее в 3. –

+0

Я не уверен в возможностях MySQL, но в MS SQL вы можете сделать это с помощью триггеров, где один INSERT может запускать SQL-код, который делает все, что вы хотите, включая дополнительные инструкции INSERT. Если MySQL имеет аналогичную функцию запуска, вот где я начну искать. – SunKnight0

+0

Спасибо Marc B & @ SunKnight0.Я понимаю, что вы не можете генерировать данные из ничего, триггеры единственное решение, потому что я знаю, как получить данные из базы данных, но я хотел бы получить данные (строка 1) выполнить вычисления и вывод эти результаты в той же таблице следуют друг за другом. –

ответ

0

В mysql вы не можете сделать новую строку так. Но вы можете создавать столбцы.

В этом случае вы можете запустить пример, как

select 
    *, 
    Amount * 0.01 as interest, 
    Amount * 0.005 as commission 
from your_mega_table; 

И если вы измените код, который вы можете получить 3 версии ряда с различными количествами.

В противном случае вам понадобится выполнить какой-либо cron-скрипт или триггер или хранимую процедуру в базе данных, что решит ваш случай.

+0

Спасибо @Spell, Кажется, что это единственный способ с помощью cron script/trigger или хранимых процедур. Можете ли вы привести пример того, как я буду заниматься этим? –

+0

Для меня я рекомендую вам вставлять другие строки в тот момент, когда вы вставляете основную строку. В контексте вашей проблемы я понимаю, что вы работаете с деньгами. В этом случае вы должны исправить все вычисления в db, couse, если вы в будущем измените свой код, вам нужно будет оставить устаревший код и поддержать его. Но если вы сохраните данные в db - никакого устаревшего кода не останется. – Spell

+0

Спасибо @Spell, я думаю, что пойду с кодами базы данных, хотя это мой первый раз, кажется, имеет больше смысла. Спасибо за ваше время и ответы. Благословения Быть. –

Смежные вопросы