좋아요, 제 설명은 길어요.하지만 나와 함께 감내주십시오.기존 데이터 집합에 열을 추가하는 가장 좋은 방법은 무엇입니까?
두 개의 매우 긴 쿼리를 INNER JOIN을 사용하여 여러 테이블에서 실행하고 있습니다. 이 두 쿼리의 유일한 차이점은 두 개의 개별 DropDownLists에서 가져 오는 WHERE 절 중 하나에 대해 서로 다른 입력 값을 사용한다는 것입니다. 이러한 쿼리의 결과는 동일하며 time1/time2 열에 저장됩니다.
string query1 = "select Name = t1.name, time1=(SELECT hours FROM table3 WHERE street=list1.selectedvalue), t2.address from [table1] t1 INNER JOIN [table2] t2 ON t1.param = t2.param ORDER BY Name";
string query2 = "select Name = t1.name, time1=(SELECT hours FROM table3 WHERE street=list2.selectedvalue), t2.address from [table1] t1 INNER JOIN [table2] t2 ON t1.param = t2.param ORDER BY Name";
나는 하나에이 두 테이블을 병합하고 싶습니다 (제가 쿼리를 실행하고 둘 다 예상 된 결과를 반환합니다. 위의 쿼리의 구문을 귀찮게하지 마십시오) 데이터 세트 (또는 그리드 뷰의 데이터 소스로 사용할 수있는 다른 모든 구조). '이름'열은 고유하고 다른 열도있을 수 있습니다. 확인할 수 있습니다. 나는 마지막 테이블 열
이름 시간 1 타임 2 분석
- 별로 문제가되지 않는 열의 순서 주소 닮은 싶어하지만, 너무 많은 일이 아니라면, 나는 위의 순서를 선호 할 것입니다.
- 나는 time1과 time2에 수학 연산을 수행하고 그에 따라 분석 열을 업데이트하려고합니다. C# 또는 JS에서이 작업을 수행하는 것이 좋습니다.
현재 두 테이블의 결과를 수집하기 위해 데이터 테이블을 사용하고 있습니다. Datatable.Merge 메서드를 사용해 보았습니다. 그러나 열 이름을 동일하게 지정 했음에도 불구하고 실제로 행 수 (외부 조인과 같은 종류)를 두 배로 늘립니다. (새 DataColumn ... columns.Add)
찾고 주셔서 감사합니다 :) 나는 당신의 의견을 주셔서 감사합니다.
Datatable dt1 = new datatable;
Datatable dt2 = new datatable;
dt1.Columns.Add(new DataColumn("name", typeof(string)));
dt1.Columns.Add(new DataColumn("time1", typeof(int)));
dt1.Columns.Add(new DataColumn("time2", typeof(int)));
dt1.Columns.Add(new DataColumn("analysis", typeof(string)));
dt1.Columns.Add(new DataColumn("address", typeof(string)));
SqlDataReader dr = cmd1.ExecuteReader();
while (dr.Read())
{
DataRow drow = new DataRow();
drow["name"] = dr["name"].ToString();
drow["time1"] = dr["time1"];
drow["address"] = dr["CurrentTime"].ToString();
dt1.Rows.Add(drow);
}
dr.Close();
dr = cmd2.ExecuteReader();
while (dr.Read())
{
DataRow drow = new DataRow();
drow["time2"] = dr["time1"];
drow["analysis"] = "I need javascript here";
dt2.Rows.Add(drow);
}
dr.Close();
dt1.Merge (dt2);
this.GridView1.DataSource = dt1;
this.GridView1.DataBind;
내부 조인 조건을 만드는 테이블간에 공통된 데이터가 있습니까? 'str1'의 어떤 행이 'str2'의 어떤 행에 병합되어야하는지 어떻게 알 수 있습니까? –
외부 조인 동작을 피하기 위해 병합 기능으로 누락 된 스키마 동작을 설정해보십시오. – Thurein
안녕 Lazy Bob, 두 쿼리의 '이름'필드는 각 행에 대해 고유하며 '시간'의 두 값에 대한 일치 기준입니다. – Freakishly