2012-02-27 3 views
0

서비스 이름 및 요금이 포함 된 815 개의 레코드가있는 Excel 파일이 있습니다. 데이터베이스에 일부 레코드가 입력되어 나머지 781 레코드를 삽입해야합니다.Excel에서 데이터 가져 오기 및 정규화 된 SQL 테이블에 삽입

문제는 2 개의 테이블이 있는데, 하나는 부서 서비스이고 다른 하나는 deptservicedetails입니다. 부서별 서비스 테이블에는 서비스 이름 (기타)이 있으며 service_id라는 열을 통해 deptservicedetails에 조인됩니다. Deptservicedetails는 해당 서비스에 대한 요금이 부과되는 곳입니다 (현금 및 신용 요금이 있지만 걱정하지 않으므로). 부서 서비스에는 모든 서비스 이름이 있지만 각 서비스 비용은 세부 정보 테이블에 없습니다.

이제 정상적으로 프로그램을 사용하여 요금을 청구하면 아는 것처럼 오래 걸릴 수 있습니다. 따라서 여러 가지 삽입 쿼리 (Excel 수식 사용) 또는 테이블의 ID가있는 Excel 시트의 이름과 일치하는 ID를 사용하여 세부 정보 테이블에 레코드를 삽입 할 수있는 방법이 있습니까 .

현재 이름과 청구 금액이 포함 된 삽입 쿼리를 작성할 수 있지만 세부 정보 테이블에는 서비스 ID가 필요하며 삽입 쿼리에는 이름이 필요하지 않습니다.

희망을 이해하고 감사드립니다.

+1

질문을 더 추상적으로 만들 수 있으며 어떤 데이터가 어디로 가야하는지에 대한 세부 정보를 게시 할 수 있습니까? – devsnd

답변

2

더 자세한 내용이 없으면이 장면이 모두 어두운 곳에서 촬영됩니다.

Excel에서 SQL INSERT 문을 작성하기위한 수식을 작성하고 INSERT INTO ... SELECT 문을 사용하면 삽입 중에 service_id를 얻을 수 있습니다. 이 같은 Excel 수식 뭔가 :

="INSERT INTO deptservicedetails SELECT " & B2 & "," & C2 & ", service_id FROM departmentalservices t2 WHERE t2.service_name = '" & A2 & "';" 

경우 세포 B2 & C2는 (가 문자열 인 경우 다음 작은 따옴표를 포함해야합니다) 삽입 할 값이며, A2는 당신이 할의 이름을 포함 ID를 찾으세요.

물론 이름/id 데이터를 Excel로 내보내고 VLOOKUP()을 수행하고 SQL을 그런 식으로 구축 할 수도 있습니다.

먼저이 레코드를 하나의 레코드로 시도하고 SQL이 올바르게 형성되었는지 확인한 다음 모든 삽입에 대해 실행합니다.

+0

고마워요 그 어떤 웹 사이트에서 본 havent 인서트를 사용하여 멋진 방법. 하위 쿼리를 사용하고 있었지만 허용하지 않았습니다. 미안하지만 많이 제공 할 수는 없었지만 그렇게하기 전에 대답했습니다. – Shakir

관련 문제