2013-04-13 2 views
1

결과 집합을 검색하기 위해 SP를 작성했습니다.동적으로 SQL 결과 집합에 행 추가

SELECT * 
FROM `temp_table` JOIN `mytable` ON `mytable_ID` = `temp_table_tmp_id` 
WHERE CEILING(`tmp_idx`/int_page_size) = p_page_no 
UNION ALL 
SELECT DISTINCT `ID`, `temp_table_tmp_id`,`Name`, 100, `Type`,`Description` 
ORDER BY `tmp_idx`; 
:

SELECT * 
FROM `temp_table` JOIN `mytable` ON `mytable_ID` = `temp_table_tmp_id` 
WHERE CEILING(`tmp_idx`/int_page_size) = p_page_no 

지금, 내가 때문에, 나는 다음과 같은 시도, 위의 결과 세트에 동적 행을 추가해야합니다 : 그래서 다음과 같은 SQL 섹션은 나에게 내가 원하는대로 설정 한 결과를 줄 것이다

그러나 "UNION ALL"다음에 SELECT 문에 정의한 각 필드에 대해 "Unknown column 'tmp_idx'in 'field list'"오류가 발생합니다. 결과 세트에 표시해야하는 값으로 "100"을 넣었습니다. 나는 이것이 내가 원하는 것을 충분히 분명히하기를 바랍니다. 이것이 어떻게 수정/달성 될 수 있는지 알려주십시오. 사전에

감사합니다.

+0

죄송합니다. MySQL을 사용하여이 작업을 수행하고 있습니다. –

+0

동적 행의 열 머리글을 구분하기 위해 역 따옴표 (') 대신 아포스트로피 (즉, ')를 사용해보십시오. 또한 모든 숫자 열을 기본 쿼리의 형식이 지정된 문자열로 변환해야합니다. –

+0

tmp_ind 란 무엇입니까? 첫 번째 노동 조합의이 분야가 선택 되었습니까? – AnatolyS

답변

0

역행 (back-tick) (`) 대신 아포스트로피 (')를 사용하여 동적 행의 열 머리글을 구분하십시오. 또한 모든 숫자 열을 기본 쿼리의 형식이 지정된 문자열로 변환해야합니다.

순서를 제어하여 인위적인 행이 마지막에 표시되도록하려면 데이터 행의 경우 하드 코딩 된 값이 0이고 동적 행의 경우 1 인 다른 열 sequence을 추가하십시오. 그런 다음 ORDER BY의 앞에이 새로운 열 sequence을 추가하십시오. (일부 SQL 언어에서는 이름 대신 서수로이 열을 식별하거나 order by 절을 포함하는 래퍼 쿼리를 추가해야합니다.)

+0

다음 숫자로 총 결과 + 1을 계산하여 해결했습니다. 도움을 많이 주셔서 감사합니다. @PieterGeerkens –

+0

그게 효과가 있습니다. 가장 좋은 감사는 항상 투표입니다. ;-) –

+0

나는 그것을 투표하는 15 명의 대표를 가질 필요가있다. 죄송합니다! –

관련 문제