과 호환되도록 변환합니다. 이전에는 SQL에서 normaly를 사용하여 각 'Facility Code'/ ''에 대해 가장 낮은 값의 'OP'를 가져 오는 쿼리를 사용하려고했습니다. 주문 번호 '쌍이 있습니다. 이것은 아래에 표시된 통합 쿼리의 아래쪽 절반에 포함되어 있습니다.row_number()가있는 SQL 쿼리를 Excel OLEDB 쿼리
Dim Query As String = "SELECT [Facility Code],[Mach],[Part Number],[Part Name],[Order No#],[OP],[Status],[Order Qty],[Qty Comp]," & _
"[Mfg Due Date],[Planner],[Standard efficiency],[TBC ],[Std run labor time],[Std mach time],[Std setup hrs] " & _
"From [" & sheetName & "] WHERE [Facility Code] LIKE 'R%' " & _
"UNION " & _
"SELECT m.[Facility Code],m.[Mach],m.[Part Number],m.[Part Name],m.[Order No#],m.[OP],m.[Status],m.[Order Qty],m.[Qty Comp]," & _
"m.[Mfg Due Date],m.[Planner],m.[Standard efficiency],m.[TBC ],m.[Std run labor time],m.[Std mach time],m.[Std setup hrs] " & _
"FROM " & _
"(SELECT s.[Facility Code],s.[Mach],s.[Part Number],s.[Part Name],s.[Order No#],s.[OP],s.[Status],s.[Order Qty],s.[Qty Comp]," & _
"s.[Mfg Due Date],s.[Planner],s.[Standard efficiency],s.[TBC],s.[Std run labor time],s.[Std mach time],s.[Std setup hrs], " & _
"row_number() over(partition by s.[Facility Code],s.[Order No#] ORDER BY s.[OP] asc) as rn " & _
"FROM [" & sheetName & "] s " & _
"WHERE s.[Facility Code] LIKE 'J%') m " & _
"WHERE m.rn =1 "
내 문제는 Excel 스프레드 시트에서 읽는 중 오류가 발생합니다. google 검색을 마치면 row_number() 명령이 호환되지 않는다고 생각합니다.
레코드를 그룹화하려고했지만이 쿼리도 실패합니다. '그룹 기준'에없는 필드가 집계 함수가 아니기 때문에 오류가 발생합니다.
Dim Query As String = "SELECT [Facility Code],[Mach],[Part Number],[Part Name],[Order No#],[OP],[Status],[Order Qty],[Qty Comp]," & _
"[Mfg Due Date],[Planner],[Standard efficiency],[TBC],[Std run labor time],[Std mach time],[Std setup hrs] " & _
"From [" & sheetName & "] WHERE [Facility Code] LIKE 'R%' " & _
"UNION " & _
"SELECT [Facility Code],[Mach],[Part Number],[Part Name],[Order No#],[OP],[Status],[Order Qty],[Qty Comp]," & _
"[Mfg Due Date],[Planner],[Standard efficiency],[TBC],[Std run labor time],[Std mach time],[Std setup hrs] " & _
"From [" & sheetName & "] WHERE [Facility Code] LIKE 'J%' " & _
"GROUP BY [Facility Code],[Order No#] ORDER BY [Facility Code],[Order No#],[OP] asc"
도움이 필요하시면 미리 감사드립니다.
다른 모든 필드에 대해 FIRST (a) 함수를 사용하면 첫 번째 행이 반환 된 데이터를 가져와야합니다. 내가 a, b 순으로 그룹화하고 C로 정렬하면 다른 모든 열은 내 정렬 (c)을 기반으로 첫 행과 일치해야합니다. 나는 다른 분야에서 많은 다른 결과를 얻게 될 것이고, 단지 같은 줄에서 값들을 모두 얻을 필요가있다. – SoundWaves
동일한 행에서 값을 가져옵니다. ORDER BY를 수행하면 정렬 후 첫 번째 행이됩니다. – Marius
그 트릭을했다 - 고마워요 @ 마리우스! – SoundWaves