2014-11-17 3 views
0

Access 데이터베이스에서 특정 값을 선택하려고합니다. 그래서 데이터베이스가 많은 colums을 포함, 나는 첫 번째 값을 선택할 수, 또는 마지막이야 :액세스 데이터베이스에서 N 번째 값 선택 (SQL)

SELECT Column1, First(Column7) AS Column7_1, First(Column8) AS FirstOfColumn8, [Column1] & [Column7_1] AS [Column1&Column7] 
FROM [Table1] 
GROUP BY Column1; 

이제 내가 무엇을 알아 내려고 노력하고있어 그 열에서 n 번째 값을 얻는 방법이다.

SELECT Column1, First(Column7) AS Column7_1, First(Column8) AS FirstOfColumn8, [Column1] & [Column7_1] AS [Column1&Column7] 
FROM [Table1] 
WHERE Column7 > (SELECT First(Column7) FROM [Table1]) AND Column8 > SELECT First(Column8) FROM [Table1]) 
GROUP BY Column1; 

하지만이 나를 점점되지 않습니다 SQL은 세 번째 인식 할 경우 어떻게 완벽 할 것입니다 것은 나는 다음과 같은 시도 (COLUMN7)입니다. 다른 열의 값은 더 이상 일치하지 않습니다. 나는 이것을 어떻게 얻을 수 있었는지에 관해서는 추측을합니까? 감사합니다

+0

표시된 querys에는 주문한 것이 없습니다. 'order by'가 first(), third() 또는 nth()가 누락되면 의미가없는 값이됩니다. 이는 SQL 쿼리 (액세스도 가능)가 지정되지 않은 경우 순서를 보장하지 않기 때문입니다. side note : third() 및 nth()가 존재하지 않습니다. –

답변

0

AFAIK, 위의 구문으로 열 번호로 열을 선택하는 것은 실제로 SQL에서는 지원되지 않습니다. (동적 SQL과) 트릭을 할 수있는 다음과 유사한

뭔가 :

get list of column names in given table* 
for each column name 
    do this 
end 

* 아래의 쿼리가 사용 될 수 있습니다! 답장에 대한

SELECT s.NAME SchemaName, 
     t.NAME TableName, 
     c.NAME ColumnName 
FROM sys.columns c 
     INNER JOIN sys.tables t 
       ON c.object_id = t.object_id 
     INNER JOIN sys.schemas s 
       ON t.schema_id = s.schema_id 
0

덕분에, 내가 지정하는 것을 잊었다 무엇 내가 실제로 열에서 n 번째 셀을하려고하지 않아요이다; 그것은 특정한 colmn에 포함 된 n 번째 값을 얻는 것에 관한 것입니다. 는 예를 들어, 다음 표

Column1 Column2 Column3 
A1  Prop1  20 
A1  Prop1  20 
A2  Prop2  15 
A2  Prop1  20 
A3  Prop2  15 
A3  Prop3  5 
A3  Prop3  5 
A4  Prop1  20 
A4  Prop2  15 
A4  Prop3  5 
A4  Prop4  10 

I 그러므로 그 첫번째 요소 얻을 수 있도록, 각 column1id 대해 2 열에서 n 번째 값을 선택하고자 :

Column1 Column2 Column3 
A1  Prop1  20 
A2  Prop1  20 
A3  Prop2  15 
A4  Prop1  20 

초 요소 :

Column1 Column2 Column3 

    A2  Prop2  15 
    A3  Prop3  5 
    A4  Prop2  15 

및 제위한

:

0,123,343

희망하시는 분