You are on page 1of 5

Assignment Questions

1. Select only those IMS_ids with specialty group OTHER mapped to territory C60401 and C60402 Solution: As per my understanding, we have to filter out those ims ids which are in speacilaty group other and are mapped to either of C60401 or C60402.

Select d2.ims_id from training_data2 as d2 Inner join training_data4 on as d4 On d2.spec = d4.ims_specialty Where d4.specialty_group = Other And d2.territory_id in (C60401 , C60402)

2. Generate a table to map TRx_Qtys to territories. Use this table to sum the sales at territory level for different months. Solution:

Select d2.territory_id, d3.TRX_Qty, 3.cal_dt from training_data2 as d2 Inner join training_data3 as d3 On d2.ims_id = d3.ims_id Into q2 Select territory_id, sum (TRX_Qty), month (cal_dt) From q2 Group by territory_id, month (cal_dt)

3. Average the sales for all territories after including IMS_IDs only with specialty ADM and AI month-wise Solution:

Select d2.territory_id, d2.spec, sum (d3.TRX_Qty), d3.cal_dt from training_data2 as d2 Inner join training_data3 as d3 On d2.ims_id = d3.ims_id Where d2.spec in (ADM, AI) Group by d2.territory_id, d2.spec , month (d3.cal_dt)

4. Sum the sales for all territories with target_flag Y and cal_dt greater than June 2012 Solution: Select d2.territory_id, d3.trgt_flg, sum (d3.TRX_Qty), d3.cal_dt from training_data2 as d2 Inner join training_data3 as d3 On d2.ims_id = d3.ims_id Where d3.trgt_flg = Y And d3.cal_dt > 7/1/2012 Group by d2.territory_id, d3.trgt_flg, d3.cal_dt

5. Get the count of IMS IDs in various specialty groups Solution: Select count (d2.ims_id), d4.specialty_group from training_data2 as d2 Inner join training_data4 as d4 On d2.spec = d4.ims_specialty Group by d4.specialty_group

6. Get a unique list of IMS_IDs listed in these data-sets. Map sales for Oct-2012 to these IMS_Ids Solution: Select d2.ims_id, d3.ims_id, sum (d3.TRX_Qty), d3.cal_dt from training_data2 as d2 outer join training_data3 as d3 On d2.ims_id = d3.ims_id Into q6 Where d3.cal_dt = 10/1/2012 Group by d2.ims_id, d3.ims_id

7. Count the number of Targets in territory C60401. Solution: Select count (d2.ims_id), d2.territory_id, d3.trgt_flg from training_data2 as d2 inner join training_data3 as d3 On d2.ims_id = d3.ims_id

Where d3.territory_id = c60401 And d3.trgt_flg = y Group by d2.territory_id, d3.trgt_flg

8. Find the Territory with maximum number of Targets. Also report its total TRx_Qty Solution: Select count(d2.ims_id), d2.territory_id, sum(d3.TRX_Qty), d3.trgt_flg from training_data2 as d2 inner join training_data3 as d3 On d2.ims_id = d3.ims_id Into q_8 Where d3.trgt_flg = y Group by d2.territory_id, d3.trgt_flg Order by sum(d3.TRX_Qty) desc Select top 1 * from q_8

9. Update table training_data3 to include a column of Specialty codes. Solution: Update training_data3 Set d3.specialty_group = d5.specialty_group from training_data3 as d3 inner join (Select d2.ims_id, d4.specialty_group from training_data2 as d2 Inner join training_data4 on as d4 On d2.spec = d4.ims_specialty) as d5

10. Get the Territory_Id and Specialty code for the IMS_id which have maximum TRx_Qty Solution: Select d2.ims_id, d2.territory_id, d2.spec, sum(d3.TRX_Qty) from training_data2 as d2 right outer join training_data3 as d3 On d2.ims_id = d3.ims_id Into q_10 Where d3.trgt_flg = y Group by d2.ims_id, d2.territory_id, d2.spec Order by sum(d3.TRX_Qty) desc

Select top 1 * from q_10

11. List all the IMS_IDs that have no sales. Solution: Select d2.ims_id, d3.ims_id, isnull(sum(d3.TRX_Qty),0) from training_data2 as d2 full outer join training_data3 as d3 On d2.ims_id = d3.ims_id Group by d2.ims_id, d3.ims_id having sum(d3.trx_qty) = 0

12. Count the number of territories with no sales. Solution: Select count (d12.territory_id) from (Select d2.territory_id, isnull(sum(d3.TRX_Qty),0) from training_data2 as d2 left outer join training_data3 as d3 On d2.ims_id = d3.ims_id Group by d2.territory_id having sum(d3.trx_qty) = 0) as d12

13. Count the total no of Territories, where sales is greater than 500. Solution: Select count (d13.territory_id) from (Select d2.territory_id, isnull(sum(d3.TRX_Qty),0) from training_data2 as d2 left outer join training_data3 as d3 On d2.ims_id = d3.ims_id Group by d2.territory_id having sum(d3.trx_qty) > 500) as d13

14. Count the no of sales in Territory C60402, where sales are greater than 50 Solution: Select count (d14.sales) from (Select d2.territory_id, isnull (d3.TRX_Qty),0) from training_data2 as d2 left outer join training_data3 as d3 On d2.ims_id = d3.ims_id Where d2.territory_id = c60402 And d3.trx_qty > 50) as d14

15. List All IMS_ids with their sales. If there are no sales report it as Zero. Solution: Select d2.ims_id, d3.ims_id, isnull(sum(d3.TRX_Qty),0) from training_data2 as d2 full outer join training_data3 as d3 On d2.ims_id = d3.ims_id Into q_11 Group by d2.ims_id, d3.ims_id

You might also like