Я изменяю существующий SQL-запрос. Проблема в том, что я хочу добавить описание из таблицы в существующие данные. Я добавил подзапрос, как показано на рисунке, но, похоже, изменил мой возвращаемый набор данных. можете anyonple предложить, как получить правильные данные с помощью подзапроса?SQL Subquery in join
SELECT TOP 100
ROW_NUMBER() OVER (ORDER BY LTRIM(VW_POLINDEX.SYMBOL) ASC, LTRIM(VW_POLINDEX.POLNUM) ASC, LTRIM(VW_POLINDEX.MODULE) ASC) AS RowNum
,VW_POLINDEX.POLNUM
,VW_POLINDEX.SYMBOL
,VW_POLINDEX.MODULE
,
--Subquery: 1 This subquery will fetch the description based on the pol details
(SELECT TOP 1
reasonamendedCd
FROM SHPolicyAmendmentHistory SH
WHERE SH.PolicyNbr = VW_POLINDEX.POLNUM
AND SH.PolicySymbolCd = VW_POLINDEX.SYMBOL
AND SH.PolicyModuleNbr = Module
ORDER BY amendmentnbr DESC
) AS POLSECRIPTION
,VW_POLINDEX.CANCELLD
FROM VW_POLINDEX WITH (NOLOCK)
INNER JOIN LINE_OF_BUS_LIT WITH (NOLOCK) ON VW_POLINDEX.LOB = LINE_OF_BUS_LIT.LOB_CD
INNER JOIN POL_STATUS_LIT WITH (NOLOCK) ON VW_POLINDEX.TYPEACT = POL_STATUS_LIT.POL_STATUS_CD
WHERE (CASE VW_POLINDEX.MODULE
WHEN 0 THEN VW_POLINDEX.SYMBOL + '0'
ELSE VW_POLINDEX.SYMBOL + '1'
END) NOT IN ('RJD1', 'RJH1')
AND VW_POLINDEX.LOB = 'HP'
Токовый выход:
+------+-------+------+------+-------------+---------+
|RowNum|POLNUM |SYMBOL|MODULE|POLSECRIPTION|CANCELLD |
+------+-------+------+------+-------------+---------+
|3 |0040026|CCS |2 |<NULL> |9/12/2006|
+------+-------+------+------+-------------+---------+
|4 |0040026|CCS |3 |<NULL> |9/12/2010|
+------+-------+------+------+-------------+---------+
|2 |0040026|CCS |1 |<NULL> |9/12/2006|
+------+-------+------+------+-------------+---------+
|7 |2000010|CCS |2 |XM |1/1/1753 |
+------+-------+------+------+-------------+---------+
|8 |2000010|CCS |3 |CPP |1/1/1753 |
+------+-------+------+------+-------------+---------+
|12 |2000025|CCS |0 |RN |1/1/1753 |
+------+-------+------+------+-------------+---------+
|16 |2000025|CCS |4 |RN |1/1/1753 |
+------+-------+------+------+-------------+---------+
|6 |2000010|CCS |1 |IC |1/1/1753 |
+------+-------+------+------+-------------+---------+
|20 |2000029|CCS |1 |RN |1/1/1753 |
+------+-------+------+------+-------------+---------+
|10 |2000010|CCS |5 |CM |1/1/1753 |
+------+-------+------+------+-------------+---------+
|11 |2000010|CCS |6 |Z |7/28/2013|
+------+-------+------+------+-------------+---------+
|24 |2000029|CCS |5 |RN |1/1/1753 |
+------+-------+------+------+-------------+---------+
|14 |2000025|CCS |2 |RN |1/1/1753 |
+------+-------+------+------+-------------+---------+
Ожидаемого результат (некоторые строки отсутствуют в выводе предыдущего, а также не сортируются после добавления подзапроса):
+------+-------+------+------+-------------+---------+
|RowNum|POLNUM |SYMBOL|MODULE|POLSECRIPTION|CANCELLD |
+------+-------+------+------+-------------+---------+
|1 |0040026|CCS |0 |test |9/12/2006|
+------+-------+------+------+-------------+---------+
|2 |0040026|CCS |1 |test |9/12/2006|
+------+-------+------+------+-------------+---------+
|3 |0040026|CCS |2 |test |9/12/2006|
+------+-------+------+------+-------------+---------+
|4 |0040026|CCS |3 |test |9/12/2010|
+------+-------+------+------+-------------+---------+
|5 |2000010|CCS |0 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|6 |2000010|CCS |1 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|7 |2000010|CCS |2 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|8 |2000010|CCS |3 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|9 |2000010|CCS |4 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|10 |2000010|CCS |5 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|11 |2000010|CCS |6 |test |7/28/2013|
+------+-------+------+------+-------------+---------+
|12 |2000025|CCS |0 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|13 |2000025|CCS |1 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|14 |2000025|CCS |2 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|15 |2000025|CCS |3 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
|16 |2000025|CCS |4 |test |1/1/1753 |
+------+-------+------+------+-------------+---------+
Я удалил тег MySQL, потому что синтаксис SQL Server. –
Результат не сортируется, потому что вы не сортируете его, и поэтому он может быть возвращен любым способом, который желает SQL SERVER. Добавьте предложение 'ORDER BY'. И вы действительно уверены, что хотите «NOLOCK» там? –
Да, вывод можно сортировать, но добавление подзапроса дает мне неправильные данные, некоторые строки также отсутствуют после сортировки. Также мне нужно получить верхнюю часть 1 из SHPolicyAmendmentHistory на основании даты изменения, поэтому не уверен, что объединение поможет, так как она приносит все столбцы в SHPolicyAmendmentHistory – user2814819