sql server - SQL - Dynamically generated Insert or Select statement based on some condition -
lets have table following data
customer table:
name amount date_created invoice_number -------------------------------------------------- john 50 11april2012 12 bob 150 15april2012 32 david 506 10may2012 52 paul 80 12aug2012 12 mark 10 11jan2012 52
summary table:
name amount --------------------- sally 250 darren-32 150
i select rows date_created between start_date , end_date of current_quarter. if date_created within current quarter append invoice_number name before doing insert statement (see example in summary table above).
insert summary(name, amount) select name|| '-' || invoice_number, date_created, invoice_number customer;
how can modify above use either "decode" function or "case" function (or other "if statement" type function) check value of date_created , append invoice_number if date_created within current quarter.
obviously need know start , end dates of current quarter , need store them somewhere before doing comparison. possible @ pure sql? pl/sql not option.
assuming in q1 (apr - jun) end result should be:
name amount --------------------- sally 250 darren-32 150 john-12 50 bob-32 150 david-52 506 paul 80 mark 10
i reading customer table oracle 10g database , populating summary "summary" table resides in sql server database. fact inserting sql server database should not matter. reading data oracle database syntax should oracle compatible.
the oracle syntax describe in 2 bullet-points
select (case when date_created >= trunc(sysdate,'q') , date_created < trunc(add_months(sysdate,3),'q') name || '-' || invoice_number else name end), date_created, invoice_number customer;
Comments
Post a Comment