using foreach loop each iteration it will execute one select query based on the MasterId,the code has been shown below;
In OleDB Source how to Map the coloum names in each Query in SSIS
IF (@MasterId = 1501)
BEGIN
SELECT FDC.CrewID, FDC.CrewType, FDC.Role, FD.BlockTime, FD.FromCity, FD.ToCity, FD.AircraftID FROM
com.FLIGHTDATA AS FD INNER JOIN com.FLIGHTDATACREW AS FDC ON FD.FlightID = FDC.FlightID
WHERE FD.ChocksOff > @MaxDate
END
ELSE IF (@MasterId = 1502)
BEGIN
select distinct FD.FlightNo,FDC.CrewId,FD.ChocksOff,FD.ChocksOn, isnull(FD.FromCity,0) AS FromCity,isnull(FD.ToCity,0) AS ToCity,RS.SectorType,E.PresentBaseID, FDC.CrewType,FD.FLIGHTTYPE,RM.TraveltoAirport,RM.TravelfromAirport,RM.DeBrief,RM.DutyType From Com.FLIGHTDATA FD WITh(NOLOCK)
INNER JOIN com.FLIGHTDATACREW FDC WITh(NOLOCK) On FD.FlightID = FDC.FlightID
INNER JOIN COM.EMPLOYEE E ON E.EmployeeID = FDC.CrewID
LEFT JOIN com.rostersectortype RS WITh(NOLOCK) ON FD.FromCity = RS.FromCity AND FD.ToCity = RS.ToCity
LEFT JOIN OPS.FDTLGROUPMASTER FM WITh(NOLOCK) ON FDC.CrewID = FM.EmployeeID AND FD.FlightDate BETWEEN FM.VALIDFROM AND FM.VALIDTO
INNER JOIN com.REPOSITORY REP On REP.RepositoryType = 5020 And REP.ReferenceCode = E.EmployeeCategory
And REP.RepositoryCategory = 1
INNER JOIN OPS.REPORTINGTIMEMASTER RM WITh(NOLOCK) ON IsNull(FM.GroupID,REP.RepositoryID) = RM.GroupID AND Rm.AirCraftID = FD.AircraftID and RM.FlightType = FD.FlightType
AND E.PresentBaseID = RM.BaseID AND RM.DutyType = 1
where FD.ChocksOff > @MaxDate
END
ELSE IF (@MasterId = 1504)
BEGIN
SELECT FDC.CrewID, CC.TripId, CC.FlightId, CC.DutyId, CC.CrewType, NFD.FlightNo, CC.RoleId, CC.RosterBaseID, NFD.ChocksOff, NFD.ChocksOn, DATEDIFF([minute],
NFD.ChocksOff, NFD.ChocksOn) AS BlockTime, NFD.FromCity, NFD.ToCity
FROM com.FLIGHTDATA AS NFD INNER JOIN opt.CCTrips AS CC ON NFD.FlightID = CC.FlightId INNER JOIN
com.FLIGHTDATACREW AS FDC ON CC.FlightId = FDC.FlightID AND CC.CrewType = FDC.CrewType AND CC.RoleId = FDC.Role
WHERE NFD.ChocksOff > @MaxDate
END