[SQL] LINQ 조합 사용?
SQLLINQ 조합 사용?
는 SQL :
SELECT date,total_usage_T1 as TotalUsageValue,'T1' as UsageType FROM TblSayacOkumalari
UNION ALL
SELECT date,total_usage_T2 as TotalUsageValue,'T2' as UsageType FROM TblSayacOkumalari
그리고 LINQ로 변환 할 시도
IEnumerable<TblSayacOkumalari> sayac_okumalari = entity.TblSayacOkumalari
.Select(x => new
{ x.date, x.total_usage_T1 })
.Union(entity.TblSayacOkumalari.Select(x => new
{ x.date, x.total_usage_T2 }));
하지만 LINQ에 UsageType로 'T1'을 변환하는 방법을 잘 모릅니다. 또한 사용하여 내 노동 조합도 올바르지 않습니다.
내 표는 다음과 같이 필드 :
| date | total_usage_T1 | total_usage_T2 |
| 2010 | 30 | 40 |
| 2011 | 40 | 45 |
| 2012 | 35 | 50 |
나는 이런 식으로 원하는
| date | TotalUsageValue | UsageType |
| 2010 | 30 | T1 |
| 2011 | 40 | T1 |
| 2012 | 35 | T1 |
| 2010 | 40 | T2 |
| 2011 | 45 | T2 |
| 2012 | 50 | T2 |
나는 매우 열심히 노력하지만, 할 수 없습니다. 도와주세요.
해결법
-
==============================
1.편집하다
편집하다
Def. from MSDN Enumerable.Concat - Concatenates two sequences. Enumerable.Union - Produces the set union of two sequences by using the default equality comparer.
내 게시물 : 연합 대 CONCAT () ()
IEnumerable<TblSayacOkumalari> sayac_okumalari = entity.TblSayacOkumalari .Select(x => new { date= x.date, TotalUsageValue = x.total_usage_T1, UsageType = "T1" }) .Concat(entity.TblSayacOkumalari .Select(x => new { date= x.date, TotalUsageValue = x.total_usage_T2, UsageType = "T2" } ));
이 당신을 위해 작업을 할 것입니다 위의 내가 그랬던 것처럼 사용 유형에 대한 당신은 당신의 새로운 익명 형식에 UsageType = "T2"를 추가해야
당신은 CONCAT 방법보다는 연합 (EU) 방법 가야보다 ..
예
int[] ints1 = { 1, 2, 3 }; int[] ints2 = { 3, 4, 5 }; IEnumerable<INT> union = ints1.Union(ints2); Console.WriteLine("Union"); foreach (int num in union) { Console.Write("{0} ", num); } Console.WriteLine(); IEnumerable<INT> concat = ints1.Concat(ints2); Console.WriteLine("Concat"); foreach (int num in concat) { Console.Write("{0} ", num); }
산출
연합과 CONCAT에 대한 사실
CONCAT () 메소드는 단지 하나 하나 열거 개의 모음을 조합하지만, 어떤 동작을 수행하지 않는 출력 쇼 / 요소가 단 두 열거 컬렉션의 모든 요소가 단일 열거 컬렉션을 반환 처리.
같은 요소는 노동 조합이 수행되는 모두 열거 모음에있는 경우 중복 즉 단지 하나의 요소를 돌려 제거하여 연합 () 메서드를 반환 열거 가능한 모음.
참고 중점
-
==============================
2.이 옵션을 사용합니다 :
이 옵션을 사용합니다 :
var result = entity.TblSayacOkumalari .Select(x => new { Date = x.date, TotalUsage = x.total_usage_T1, UsageType = "T1" }) .Union(entity.TblSayacOkumalari.Select(x => new { Date = x.date, TotalUsage = x.total_usage_T2, UsageType = "T2" }));
-
==============================
3.위해서 당신은 아마 그런 짓을하려는 익명 형식에 예상되는 속성 이름을 얻을 수 있습니다 :
위해서 당신은 아마 그런 짓을하려는 익명 형식에 예상되는 속성 이름을 얻을 수 있습니다 :
new { x.date, TotalUsage = x.total_usage_T1, UsageType="T1" }
그리고 또한
new { x.date, TotalUsage = x.total_usage_T2, UsageType="T2" }
from https://stackoverflow.com/questions/11426615/linq-union-usage by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 결정 요인 및 후보 키 동일하거나 다른 일이 있습니까? (0) | 2020.07.06 |
---|---|
[SQL] 데이터베이스 오브젝트가 이미 존재하기 때문에 업데이트-Database 명령은 ASP.Net 코어 / 엔티티 프레임 워크 코어에서 작동하지 않습니다 (0) | 2020.07.06 |
[SQL] 동적 SQL와 열 이름을 통해 루핑 (0) | 2020.07.06 |
[SQL] 때 데이터베이스 트리거의 나쁜입니까? [복제] (0) | 2020.07.06 |
[SQL] MySQL의 중첩 된 세트는 - 어떻게 노드의 부모를 찾는 방법은? (0) | 2020.07.06 |