이 함께 시도 할 수 있습니다 : 당신은이 쿼리를 시도 할 수 있습니다
SELECT pv.id
, ROW_NUMBER() OVER (PARTITION BY pv.id ORDER BY pv.auto) pv_auto
, ROW_NUMBER() OVER (PARTITION BY pv.id ORDER BY a.autonomia) a_autonomia
, a.id a_id
, pv.auto
, a.autonomia
INTO #temp
FROM @autonomie a
JOIN VARDB v ON a.id=v.IDARTICO
JOIN RIDIBA r ON v.id=r.IDVARDB and r.idartico IS NOT NULL
JOIN @PvTable pv ON pv.id=r.IDARTICO
SELECT temp_pv_auto.id
, temp_pv_auto.auto + temp_a_autonomia.autonomia AS autonomia
, temp_a_autonomia.a_id
FROM #temp temp_pv_auto
JOIN #temp temp_a_autonomia ON
temp_pv_auto.id = temp_a_autonomia.id
AND temp_pv_auto.pv_auto = 1
AND temp_a_autonomia.a_autonomia = 1
: 업데이트
SELECT pv.id
, MIN(pv.auto) pv_auto_min
, MIN(a.autonomia) a_autonomia_min
INTO #temp
FROM @autonomie a
JOIN VARDB v ON a.id=v.IDARTICO
JOIN RIDIBA r ON v.id=r.IDVARDB and r.idartico IS NOT NULL
JOIN @PvTable pv ON pv.id=r.IDARTICO
GROUP BY
pv.id
SELECT pv.id
, #temp.pv_auto_min + #temp.a_autonomia_min AS autonomia
, a.id a_id
FROM @autonomie a
JOIN VARDB v ON a.id=v.IDARTICO
JOIN RIDIBA r ON v.id=r.IDVARDB and r.idartico IS NOT NULL
JOIN @PvTable pv ON pv.id=r.IDARTICO
JOIN #temp ON
#temp.id = pv.id
AND #temp.a_autonomia_min = a.autonomia
'MIN (a.id)'를 의미합니까? 또는'MIN (pv.auto) + MIN (a.autonomia)'을 가진 그 id? 이 경우 같은 쿼리에서'group by pv.id'로 이것을 할 수 없습니다. –
각 ID의 최소값을 원하는 것처럼 들리므로 'MIN (pv.auto + a.autonomia) OVER (PARTITION BY id)'를 사용할 수 있습니다. –