면책 조항 - SQL Server에 대한 지식이 제한되어 있습니다. 그래서 이것이 '바보 같은'질문이라면 미리 사과드립니다.SQL Server 쿼리 및 중복
쿼리 목적 - 회사에서 사용하는 프로그램의 다중 테이블 데이터베이스에서 정보를 수집하고 결과를 웹 데이터베이스에 저장하여 일부 정보를 표시 할 수 있습니다.
문제 - 정보 중복. 문제의 일부는 데이터베이스에 여러 인력 인스턴스가 있다는 것입니다. 따라서 중복 된 결과가 있습니다 ... 다른 중복은 조인에서 비롯됩니다. 동일한 이름 또는 코드 (ID)로 결과 하나만 입금 할 수 있도록 결과를 결합해야합니다. 정보의 나머지 부분은 내가 필요로하는 정보를 잃지 않도록 결합하고 싶습니다.
SELECT people.Code AS [athlete-id],
people.Name AS [athlete-name],
people.DOB AS [DOB],
people.Division AS [agency-id],
certifs.[Expiration date] AS [expiration-date],
groups.Name AS [agency-name],
address.Addresses AS [address],
address.City AS [city],
address.State AS [state],
case when tags.Field = 'ABJD86GHKXXQWA9Q'
then tags.Value
end AS [restrictions],
case when tags.Field = 'VH2C78N9A15S059T'
then tags.Value
end AS [comments]
FROM people
LEFT OUTER JOIN certifs
ON people.Code = certifs.Owner
LEFT OUTER JOIN groups
ON people.Division = groups.Code
LEFT OUTER JOIN address
ON people.Code = address.Owner
LEFT OUTER JOIN tags
ON people.Code = tags.Owner
ORDER BY [agency-name], [athlete-name]
날 당신이 가질 수있는 질문으로 알려 : 여기
내가 가진 쿼리입니다. 도움에 감사드립니다.
왜 이것을 별도의 데이터베이스에 보관 하시겠습니까? 당신은 SQL Server 데이터베이스 자체를 쿼리 할 수 있어야합니다 ... 또한'tags.Field'를 참조하는 방식으로 중복 행을 기대하는 것 같습니다 - 절을 JOIN 조건의 일부로 추가하십시오 (그리고 하나가 아닌 두 개의 테이블 참조를 사용하십시오). 중복 된 사람 데이터가있는 경우이 문제로부터 별도로 해결해야하는 문제입니다. –
"여러 인조 인간"이 의미하는 바를 명확하게 설명해 주시겠습니까? 이는 동일한 이름 또는 코드 또는 둘 다를 가진 행을 의미합니까? "내가 결합하고 싶은 나머지 정보"는 무엇을 의미합니까? – PepperBob
이들은 웹에서 액세스 할 수있는 데이터베이스가 존재하지 않기 때문에 별도의 데이터베이스에 보관해야합니다. cron 작업이 실행되면 ... 방화벽 창을 연 다음 정보를 별도의 데이터베이스에 덤프합니다. 예 : 이름 : Bill Jones ID : 12345 ... 반환 된 20 개의 결과와 동일합니다 ... 그러나 주소와 같은 다른 필드의 결과가 여러 다른 날짜로 반환됩니다 (주소 변경으로 인해)) 또는 여러 주석으로 인해 의견. –