모든 테이블의 모든 일치하는 행을 U_ID
열을 기반으로 세 개의 개별 테이블에있는 모든 열을 포함하는 네 번째 MergedTable
으로 결합해야하는 SQL Server에 세 개의 테이블이 있습니다.SQL Server 데이터를 효율적으로 병합하는 방법은 무엇입니까?
저장 프로 시저에서 T-SQL을 통해이 작업을 수행하는 방법이 있습니까? 아니면 C#에서 루프 함수를 만들어야합니까?
결론은 웹 사이트의 명령에서 실행되기 때문에 MVC 프로젝트 나 구성 요소에 캡슐화 할 수 있어야합니다.
다음은 표의 예입니다.
표 1
U_ID ClientNumber OrderDate Amount
---------------------------------------------
BB000Kw 1920384 5/14/2013 1093.39
AA000bM 3839484 12/8/2012 584.42
AA000gH 8294848 2/28/2014 4849.38
AA000md 3849484 4/31/2013 590.84
AA000mF 3998398 3/29/2013 448.82
AA000mG 9944848 11/28/2014 98.85
AA000mn 0292938 10/31/2012 300.48
표 2
U_ID Name Date
------------------------------------------
AA000bM "Krivis, Jeffrey" 7/1/2002
AA000bv "Saydah, Michael" 7/30/2002
AA000cA "Byrne, Richard" 4/21/2003
AA000dd "McNeil, Joseph" 6/10/2003
AA000dH "Greenberg, Arnold" 1/16/2003
AA000gH "Rich, Elwood" 7/5/2003
AA000id "O'Neill, Robert J." 11/20/2002
AA000jf "Patsey, Richard" 4/22/2003
AA000jr "Jones, Arthur" 7/1/2002
AA000jU "Toff, Ronald" 7/15/2002
AA000k4 "Anderson, Carl" 8/14/2002
BB000Kw "Wilson, Sam" 3/9/2003
표 3 : 병합 된 테이블을 생성
U_ID Name
-----------------------------
AA000bM Acme Company
AA000jr Stockwell Industries
BB000ke Gensen Motors
BB999di Falstaff Cards
BB000dl B and R Printing
BB000Kw Go Golf Carts
AA000gH Rich's Sandwiches
U_ID ClientNumber OrderDate Amount CustomerName JoinDate CompanyName
-------------------------------------------------------------------------------------------------------
BB000Kw 1920384 5/14/2013 1093.39 "Wilson, Sam" 3/9/2003 Go Golf Carts
AA000bM 3839484 12/8/2012 584.42 "Krivis, Jeffrey" 7/1/2002 Acme Company
AA000gH 8294848 2/28/2014 4849.38 "Rich, Elwood" 7/5/2003 Rich's Sandwiches
표 1은 다른 테이블과 일치하는 마스터 테이블입니다. 결과에서 표 1과 일치하는 테이블을 기반으로 모든 테이블의 하위 집합 만 표시됩니다.
MVC를 Entity Framework 6 및 Linq-to-Entities와 함께 사용할 예정이지만 T-SQL 스크립트가 더 효율적이라면 대신 아마 그 스크립트를 사용해야합니다.
이 결과를 얻는 가장 좋은 방법은 무엇입니까?
무엇 ? –
어떤 크기의 데이터 세트를보고 있습니까? 예 : 표당 행 수는 얼마입니까? – ps2goat