문제

소스-표적 쌍 (CAT 도구의 동료 사용자를위한 번역 메모리)에 번역 된 문장이 포함 된 MS Access 데이터베이스가 있습니다. 다소 성가 시게, 소스와 대상은 별도의 열에 저장되지 않고 다음과 같이 ID로 연결된 행으로 저장됩니다.

+---+----+--------------+
|id |lang|    text      |
+---+----+--------------+
  1   a     lang a text
  1   b     lang b text 
  2   a     more a text...
  2   b     more b text...
+---+----+--------------+

그것을 다음과 같은 테이블로 바꾸는 데 어떤 SQL을 사용할 수 있습니까?

+---+--------------+--------------+
|id | lang A       | lang B       |
+---+--------------+--------------+
 1   lang a text    lang b text
 2   more a text... more b text...

성능은 여기서는 중요하지 않습니다. 가끔씩이 작업을 수행하면 DB가 크지 않습니다 (수천 행만).

도움이 되었습니까?

해결책

Crosstab 쿼리가 적합해야합니다.

TRANSFORM First([Text]) AS LangText
SELECT ID, First([Text])
FROM Table 
GROUP BY ID
PIVOT lang

추가 정보 : http://allenbrowne.com/ser-67.html

다른 팁

당신은 자체 합의가 필요합니다 :

SELECT
    t1.id, t1.text AS lang_a, t2.text AS lang_b
FROM
    lang_table AS t1
INNER JOIN
    lang_table AS t2
ON
    (t1.id = t2.id)
WHERE
    t1.lang = 'a'
AND
    t2.lang = 'b'
select a.id, a.text as 'lang A', b.text as 'lang B'
from table a join table b on (a.id = b.id)
where a.lang = 'a' and b.lang = 'b';

"테이블"이 어떤 테이블에 있든 어디에 있는지.

SELECT a.id,
MAX(CASE WHEN a.lang LIKE 'a' THEN a.text) AS Lang A,
MAX(CASE WHEN a.lang LIKE 'a' THEN a.text) AS Lang A
FROM table a
GROUP BY a.id
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top