여러보기와 테이블을 여러 사용자 (및 나 자신)가 사용할 웹 사이트 GUI를 만들기 위해 하나의보기에서 연결하려고합니다. 이것은 기본적으로 SQL 테이블 + 내부 자산 태그 + 사용자 액세스에 덤핑 된 구매 정보를 함께 연결하는 인벤토리 시스템입니다. 테이블은 유사에 :SQL Server 2008 R2보기 지원
- 자산 - 일련 번호, ID
- UserAudit - 사용자 이름, AssetsID, OfficeID, 날짜/시간
- 사무실 - 위치
- 주문 - 일련 번호, 세부
여러 자산이 컴퓨터이고 UserAudit은 사용자 이름, 컴퓨터 이름 및 날짜/시간을 기록하는 로그온 스크립트로 채워집니다. 관련 테이블에 일치하는 데이터가 있는지 여부에 관계없이 자산 목록을 기반으로 모든 정보를 연결하는보기를 만들려고합니다. UserAudit 측에서 가장 최근의 레코드 (날짜 필드 Desc) 만 표시하려고합니다.
내가 겪고있는 문제는 다른 컴퓨터의 모든 열을 여전히 반환하는 동안 ComputerName에 기반한 UserAudit의 최상위 레코드를 가져 오는 것입니다. 난 '상위 1'표시 UserAudit 별도의보기를 만들려고 -하지만 "내부 조인"을 사용하여 모든 OUTER 조인을 사용할 때 UserAUdit에서 아무것도 표시하지 않는 경우에만 1 결과를 기본보기로 제한됩니다. .
크로스 적용이 관련성이있는 것으로 보이는 조사를 수행했지만 이전에는 사용하지 않았으므로 시도가 제대로 수행되지 않았습니다. 현재보기는 다음과 같습니다.
SELECT TOP (100) PERCENT
dbo.AssetType.AssetType, dbo.AssetTagInventory.ID, dbo.AssetTagInventory.AssetDetail,
dbo.AssetTagInventory.Name, dbo.AssetTagInventory.Serial, dbo.AssetTagInventory.UserID,
dbo.AssetTagInventory.Age, dbo.AssetTagInventory.Notes,
dbo.vewOffices.Name AS OfficeName,
dbo.AssetTagPurchases.PurchaseDate, dbo.AssetTagPurchases.ProductDescription AS Model,
dbo.AssetTagPurchases.ID AS AECOrderNumber,
dbo.AssetTagPurchases.Vendor, dbo.AssetTagPurchases.QuotedPrice,
dbo.AssetTagPurchases.InvoicedPrice, dbo.AssetTagPurchases.InvoiceNum,
dbo.AssetTagPurchases.VendorOrderNumber, dbo.vewLogonAudit.Username,
dbo.vewLogonAudit.LoginTime
FROM
dbo.AssetTagInventory
INNER JOIN
dbo.vewLogonAudit ON dbo.AssetTagInventory.Name = dbo.vewLogonAudit.ComputerName
LEFT OUTER JOIN
dbo.AssetType ON dbo.AssetTagInventory.AssetTypeID = dbo.AssetType.ID
LEFT OUTER JOIN
dbo.vewOffices ON dbo.AssetTagInventory.OfficeID = dbo.vewOffices.ID
LEFT OUTER JOIN
dbo.AssetTagPurchases ON dbo.AssetTagInventory.Serial = dbo.AssetTagPurchases.Serial
중첩 된 하위 쿼리를 사용하여 상위 1 UserAudit 레코드 만 선택하고 여기에 가입하십시오. 또한 시작 부분이 아니라 줄 끝 부분에 조인 키워드를 작성하면 쿼리를 읽는 것이 정말 불쾌 해집니다. –