Запрос, чтобы получить данные из двух таблиц и вернуть их вместе - PullRequest
0 голосов
/ 25 марта 2019

У меня быстрый вопрос по поводу использования sql-сервера. У меня есть две таблицы, одна для страховщиков, а другая для встреч. Моя цель - создать запрос, в котором я собираю все встречи с двумя конкретными страховщиками. Например, я хочу, чтобы все назначения, которые используют совхоз и USAA в качестве страховщика.

SELECT TOP (1000) [Id]
      ,[Name]
      ,[AddressOne]
      ,[AddressTwo]
      ,[City]
      ,[State]
      ,[Zip]
      ,[PrimaryPhone]
      ,[SecondaryPhone]
      ,[Fax]
      ,[InsurerStatusId]
      ,[InsuranceGroupId]
      ,[ModifiedDate]
      ,[ModifiedBy]
      ,[ReportInsuranceName]
      ,[ReportInsuranceId]
  FROM [AssignmentManagement].[dbo].[Insurers]

SELECT TOP (1000) [Id]
      ,[AppointmentTypeId]
      ,[AssignmentId]
      ,[StaffId]
      ,[CalendarId]
      ,[AppointmentDate]
      ,[ScheduledDate]
      ,[RequestedAppointmentDate]
      ,[Notes]
      ,[Hour]
      ,[Minute]
      ,[DayOfTheWeek]
      ,[CenterId]
      ,[AppointmentStatusId]
      ,[RentalCar]
      ,[ScheduledBy]
  FROM [AssignmentManagement].[dbo].[Appointments]

SELECT TOP (1000) [Id]
      ,[InsurerId]
      ,[RepairCategoryId]
      ,[AssignmentStatusId]
      ,[OriginalCenterId]
      ,[OriginalStaffId]
      ,[LossCategoryId]
      ,[ClaimNumber]
      ,[PolicyNumber]
      ,[LossDate]
      ,[TotalLossIndicator]
      ,[Source]
      ,[PrimaryCustomerType]
      ,[InsuredCustomerId]
      ,[OwnerCustomerId]
      ,[ClaimCustomerId]
      ,[CustomerServiceRepresentativeId]
      ,[TransactionId]
      ,[Towing]
      ,[RentalCar]
      ,[IsDriveIn]
      ,[Deductible]
      ,[DeductibleStatus]
      ,[PhotosOnly]
      ,[LeftMessageSequence]
      ,[VehicleYear]
      ,[VehicleMake]
      ,[VehicleMakeDescription]
      ,[VehicleModel]
      ,[VehicleColor]
      ,[VIN]
      ,[Odometer]
      ,[LicenseNumber]
      ,[LicenseState]
      ,[VehicleLocationName]
      ,[VehicleAddressOne]
      ,[VehicleAddressTwo]
      ,[VehicleCity]
      ,[VehicleState]
      ,[VehicleZip]
      ,[VehiclePhone1]
      ,[VehiclePhone1Ext]
      ,[VehiclePhone2]
      ,[VehiclePhone2Ext]
      ,[VehicleContactFirstName]
      ,[VehicleContactLastName]
      ,[VehicleCondition]
      ,[VehicleNotes]
      ,[Impact1]
      ,[Impact2]
      ,[ClaimOfficeName]
      ,[AgentName]
      ,[AgentFirstName]
      ,[AgentLastName]
      ,[AgentAddressOne]
      ,[AgentAddressTwo]
      ,[AgentCity]
      ,[AgentState]
      ,[AgentZip]
      ,[AgentLicenseNumber]
      ,[AgentPhone]
      ,[AgentPhoneExt]
      ,[AgentFax]
      ,[AgentEmail]
      ,[PriorDamage]
      ,[Notes]
      ,[DamageNotes]
      ,[SpecialInstructions]
      ,[DispatchNotes]
      ,[LossNotes]
      ,[OtherNotes]
      ,[AssignmentDate]
      ,[ReportDate]
      ,[NextCallDate]
      ,[CreateDate]
      ,[CreatedBy]
      ,[IsEstimateMatch]
      ,[IsROMatch]
      ,[IsDriveable]
      ,[ModifiedDate]
      ,[UpdatedBy]
      ,[AccessedBy]
      ,[LegacyAsgnNavId]
      ,[LegacyAsgnNo]
      ,[AssignmentStatusReasonId]
      ,[RentalAgencyId]
      ,[Estimate_Id]
      ,[NextCallDateUpdatedBy]
      ,[RentalReservationNumber]
      ,[IsHail]
      ,[InitialOriginatingCenterId]
      ,[UnscheduledDropId]
      ,[UnscheduledExplanation]
      ,[RepairLevelId]
      ,[AdjusterFirstName]
      ,[AdjusterLastName]
      ,[AdjusterPhoneExt]
      ,[AdjusterPhoneNumber]
      ,[VehicleTrim]
      ,[VehicleOptions]
      ,[AdditionalInformation]
      ,[DeliveryLocation]
      ,[DeliveryCenterId]
      ,[RequestedAppointmentDate]
  FROM [AssignmentManagement].[dbo].[Assignments]

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Возможно, вам придется дважды присоединиться к таблице страховщика с назначениями, если вы хотите убедиться, что вы выбираете только назначения, у которых оба страховщика

 SELECT
        TOP (1000) A.[Id]       ,
        A.[AppointmentTypeId]       ,
        A.[AssignmentId]       ,
        A.[StaffId]       ,
        A.[CalendarId]       ,
        A.[AppointmentDate]       ,
        A.[ScheduledDate]       ,
        A.[RequestedAppointmentDate]       ,
        A.[Notes]       ,
        A.[Hour]       ,
        A.[Minute]       ,
        A.[DayOfTheWeek]       ,
        A.[CenterId]       ,
        A.[AppointmentStatusId]       ,
        A.[RentalCar]       ,
        A.[ScheduledBy]      ,
        I1.Name,
        I2.Name   
    FROM
        [AssignmentManagement].[dbo].[Appointments] A 
    left join
        [AssignmentManagement].[dbo].[Insurers] I1 
            on A.StaffId = I1.Id 
            and I1.Name = 'State Farm' 
    left join
        [AssignmentManagement].[dbo].[Insurers] I2 
            on A.StaffId = I2.Id 
            and I2.Name = 'USAA' 
    where
            I1.Name is not NULL 
        and I2.Name is not NULL  
0 голосов
/ 25 марта 2019

Похоже, что назначение [AssignmentId] относится к полю [Id] страховщика:

--  Assuming a.AssignmentId = i.Id
--  Assuming USAA's ID = 12345 and State Farm's ID = 54321:

SELECT i.[Id]
      ,i.[Name]
      ,i.[AddressOne]
      ,i.[AddressTwo]
      ,i.[City]
      ,i.[State]
      ,i.[Zip]
      ,i.[PrimaryPhone]
      ,i.[SecondaryPhone]
      ,i.[Fax]
      ,i.[InsurerStatusId]
      ,i.[InsuranceGroupId]
      ,i.[ModifiedDate]
      ,i.[ModifiedBy]
      ,i.[ReportInsuranceName]
      ,i.[ReportInsuranceId]
      ,a.[Id]
      ,a.[AppointmentTypeId]
      ,a.[AssignmentId]
      ,a.[StaffId]
      ,a.[CalendarId]
      ,a.[AppointmentDate]
      ,a.[ScheduledDate]
      ,a.[RequestedAppointmentDate]
      ,a.[Notes]
      ,a.[Hour]
      ,a.[Minute]
      ,a.[DayOfTheWeek]
      ,a.[CenterId]
      ,a.[AppointmentStatusId]
      ,a.[RentalCar]
      ,a.[ScheduledBy]
FROM [AssignmentManagement].[dbo].[Insurers] i
    JOIN [AssignmentManagement].[dbo].[Appointments] a
        ON a.AssignmentId = i.Id
WHERE i.Id IN(12345, 54321)
ORDER BY i.ID, a.[RequestedAppointmentDate];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...