많은 스레드를 읽었지만 문제점에 대한 올바른 해결책을 얻지 못했습니다. 이것은 테이블과 기계 값의 제비를 가진 매우 큰 데이터베이스를 기반으로SQL-LEFT JOIN 및 WHERE 문을 사용하여 첫 번째 행을 표시합니다.
SELECT
'"Dose History ID"' = d.dhs_id,
'"TxFieldPoint ID"' = tp.tfp_id,
'"TxFieldPointHistory ID"' = tph.tph_id,
...
FROM txfield t
LEFT JOIN txfielpoint tp ON t.fld_id = tp.fld_id
LEFT JOIN txfieldpoint_hst tph ON fh.fhs_id = tph.fhs_id
...
WHERE d.dhs_id NOT IN ('1000', '10000')
AND ...
ORDER BY d.datetime,...;
: 내가 데이터를 수집하고 csv 파일로 쉘 스크립트 당을 쓰는 쿼리를 가지고이 Thread
비교입니다 . 관심있는 항목을 선택하고 기본 제공 테이블 ID로 연결했습니다. 이제는 동일한 값을 가진 많은 행을 얻고 ID가 변경되는 결과를 줄여야합니다. 난 그냥
WHERE "Rownumber" is 1
또는 이런 식의 기계와 함께 "tph.tph_id"의 첫 번째 행이 필요합니다. 지금까지 적절한 하위 쿼리를 구현하거나 ROW_NUMBER()
SQL 함수를 사용할 수 없습니다. 귀하의 도움은 매우 감사하겠습니다. 결과는 다음과 같습니다. 마지막 ID를 기준으로이 모든 숫자에 대해 하나의 행이 필요합니다 (모든 ID는 엄격하게 연속적이지 않습니다).
A01";261511;2843119;714255;3634457;
A01";261511;2843113;714256;3634457;
A01";261511;2843113;714257;3634457;
A02";261512;2843120;714258;3634464;
A02";261512;2843114;714259;3634464;
....
시도'GROUP BY' 집계를 대상으로하면서 [tph.tph_id를 제외한 모든 필드]'GROUP BY' 당신에게 제공해야 할 수 있습니다 당신이 원하는 결과 –
아마도 내가 뭔가를 놓치고 있지만, 선택의 시작 부분에 치명적인 오류가 있습니다. 문자열에 값을 할당 할 수 없습니다 (예 : '' '복용량 기록 ID' '= d.dhs_id'는 불법입니다). 둘째로, 별칭'd'를 사용하고 있습니다 (WHERE d.dhs_id NOT IN ('1000', '10000')'와 같습니다).이 앨리어스가 정의 된 곳이 보이지 않습니다. – FDavidov
@FDavidov d (및 기타)의 별칭은 나중에 SELECT 부분에서옵니다. 나는 당신의 응답을 위해 – Nurito