#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)