First you have to create two reports (to show two tables), with data source columns as you desire for each category.
And the create a main report with all other data except these two tables and insert the reports you have created first as sub reports to the main report.
(If your report is not a complicated or huge one, instead of creating three reports you can insert one report with table to other one.)
Then from code you can set data source for each sub report with two different data tables.
As
ReportDocument subReport1 = new ReportDocument();
SubreportObject subReportObject1;
subReportObject1= mainReoprtObject.ReportDefinition.ReportObjects["Subreport1"] as SubreportObject;
subReport1 = subReportObject1.OpenSubreport("mySubreport1.rpt");
subReport1.SetDataSource(datatable1);
ReportDocument subReport2 = new ReportDocument();
SubreportObject subReportObject2;
subReportObject2= mainReoprtObject.ReportDefinition.ReportObjects["Subreport2"] as SubreportObject;
subReport2 = subReportObject2.OpenSubreport("mySubreport2.rpt");
subReport2.SetDataSource(datatable2);