Я работаю с набором данных об автомобиле в одной таблице, в которой используется следующий запрос:

SELECT 
    a.VIN_NUM AS [Registration VIN]
    ,DISTINCT STUFF(SUBSTRING(a.VIN_NUM, 1, 10),9,1,'_') AS [VIN STRING] 
FROM
    dbo.DMV_All_Tests AS a
WHERE
    KeyDateTime between '2017/12/01' and '2018/11/30' AND
    INSP_TEST_TYPE = 'B' AND
    INSP_ATTEMPT_NUM = '1' AND
    EPA_VEHICLE_TYPE = 'HDV' 
ORDER BY
    [VIN STRING] DESC

Запрос извлекает из таблицы VIN автомобиля (VIN_NUM) и его первичный идентификатор кода, VIN STRING. Так, например, 1ABCD23EF4G567890 становится 1ABCD23_F. DISTINCT позволяет идентифицировать каждую уникальную комбинацию VIN STRING в наборе данных за год (около 30 000 участников).

Моя цель - создать пример номера VIN, соответствующего каждой отдельной строке VIN. Каждая строка в запрошенном результате будет иметь два столбца / члена - СТРОКА VIN (1ABCD23_F), а следующий столбец в строке будет содержать пример VIN_NUM из таблицы для СТРОКИ VIN (1ABCD23EF4G567890).

Я думаю, что это будет SELECT TOP ONE, чтобы просто получить первый экземпляр VIN NUM, но я не уверен, как он будет структурирован, чтобы предоставить этот соответствующий критериям VIN NUM для сопровождения каждой VIN STRING. Будет ли это включать ВНУТРЕННЕЕ СОЕДИНЕНИЕ?

Любые предложения будут ценны!

0
user10361118 6 Дек 2018 в 03:06

1 ответ

Лучший ответ
SELECT 
      Max(a.VIN_NUM) AS [Registration VIN]
    , STUFF(SUBSTRING(a.VIN_NUM, 1, 10),9,1,'_') AS [VIN STRING] 
FROM
     dbo.DMV_All_Tests AS a
WHERE
    KeyDateTime between '2017/12/01' and '2018/11/30' AND
    INSP_TEST_TYPE = 'B' AND
    INSP_ATTEMPT_NUM = '1' AND
    EPA_VEHICLE_TYPE = 'HDV' 
GROUP BY
    STUFF(SUBSTRING(a.VIN_NUM, 1, 10),9,1,'_')
ORDER BY
    [VIN STRING] DESC
0
Joe Torre 6 Дек 2018 в 01:02