объединение двух таблиц на основе первых 3 символов поля nvarchar

#sql #sql-server-2005

#sql #sql-server-2005

Вопрос:

У меня есть эта простая инструкция sql, но моя проблема в том, что мне нужно убедиться, что имя в первой таблице совпадает с именем в таблице 2 это должно быть просто, но когда я делаю это, это сильно сокращает мои данные, я хочу попробовать сделать это, сопоставив только первые 3 символа первого имени, чтобы посмотреть, поможет ли это

я думал сделать это в разделе join, но я не уверен, как это сделать

 SELECT DISTINCT 
                      TOP (100) PERCENT database.dbo.NAMES.SRNAME, SUM(dbo.claim.[TOTAL PAID AMOUNT]) AS TOTAL, YEAR(GETDATE()) 
                      - YEAR(CONVERT(datetime, CAST(database.dbo.NAMES.BORN - 2 AS int))) AS AGE1, dbo.claim.[BOOKING #], CONVERT(datetime, 
                      CAST(database.dbo.NAMES.BORN - 2 AS int)) AS DOB, dbo.claim.[PREMIUM YEAR]
FROM         database.dbo.NAMES INNER JOIN
                      dbo.claim ON database.dbo.NAMES.BOOKNO = dbo.claim.[BOOKING #] AND 
                      database.dbo.NAMES.FIRST = dbo.claim.[FIRST NAME]
WHERE     (dbo.claim.[PLAN #] = 'F432C' OR
                      dbo.claim.[PLAN #] = '00000F432C') AND (isnumeric(dbo.claim.[BOOKING #]) = 1)
GROUP BY database.dbo.NAMES.SRNAME, database.dbo.NAMES.BORN, dbo.claim.[BOOKING #], dbo.claim.[PREMIUM YEAR]
ORDER BY dbo.claim.[BOOKING #]
  

Ответ №1:

 Join t1 to t2 on LEFT(t1.fname, 3) = LEFT(t2.fname, 3)