sql - How to calculate the percentage in Mysql? -


i have table laborder column account, orderno, createddate, table 1 account contains multiple orderno. requirement want fetch records particular account based on createddate of comparing current week 1 previous week.

let's suppose account created 100 orders in previous week , created orders in current week 50 want notify particular account current week order less or equal previous week orders. our business requirement send email particular account current week order count less 50% previous week orders. have notify account.

calculate difference current week orders count or previous week orders ?

how achieve requirement 1 better fetch records.

  1. using simple query
  2. create view
  3. create stored procedure

i have following table data :

table name : laborder

account        orderno     createddate -------------------------------------- 101             13         2016-08-2 102             56         2016-08-9 103             79         2016-08-24 

i want data below. stored procedure compare orders current week , previous week , if 50 % less gives account has 50 % less volumes.

account  currentweekorder   previousweekorder    difference(%)               --------------------------------------------------------------- 101       50                 10                  -40 102       60                 180                 120 ->  has notified 103       30                 25                  5   -> no need notified 

how create stored procedure above details? please me i'm java developer , didn't create stored procedure in mysql before. first attempt.

i'm trying create stored procedure i'm facing lot of issues how store if query returns multiple records.:

if give me idea how create stored procedure if suggestion.

thanks

i think stored procedure not choice case because every time user insert record, database has update previous records of same week. suggest use view achieve target. here solution you:

  1. create view following sql

    select      account,     count(*) weekorder,     week(createdate) createweek      laborder      week(createdate) >= week(now()) - 1 ----last week , current week group      account, week(createdate) 
  2. suppose view's name view1, can query need:

    select      a.account,     a.weekorder currentweekorder,     b.weekorder previousweekorder,     a.weekorder / b.weekorder * 100 difference      view1  left join      view1 b on a.account = b.account , a.createweek = b.createweek - 1      a.createweek = week(now()) ,     a.weekorder / b.weekorder * 100 < 50 

hope method above can you.


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -