首页 新闻 搜索 专区 学院

如何实现将多条数据存在list集合中

0
悬赏园豆:20 [待解决问题]


public List<TaskRoutineGridData> GetDataList(string ComId, string TaskRoutineId)
{
List<TaskRoutineGridData> item;

        try
        {

            var query = from f in db.ProductionLand.Where(a => a.EnterpriseId == ComId && a.IsActive == 1)
                      
                        join a in db.TaskRoutine.Where(a => a.EnterpriseId == ComId && a.IsFinish == 0) on f.LandId equals a.LandId into temp
                        from a in temp.DefaultIfEmpty()
                        join c in db.ProductInfo on a.EntityProductId equals c.ProductId into temp1
                        from c in  temp1.DefaultIfEmpty()
                        select new TaskRoutineGridData
                        {
                            LandId = f.LandId,
                            EntityProductName = c.ProductName,
                            LandName = f.LandName,
                            ProductionType = f.ProductionType,
                            TaskRoutineId = a.TaskRoutineId,
                        };
          
            item = query.ToList();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
        return item;
    }

这是我写好的方法,现在根据LandName分类展示ProductName,实现上面那个效果

什么都不会的小胖子的主页 什么都不会的小胖子 | 初学一级 | 园豆:182
提问于:2020-10-15 13:06
< >
分享
所有回答(2)
0

使用group by或lookup,key使用LandName,而对其值使用string.Join(",",值.OrderBy(t=>t));

E行者 | 园豆:1761 (小虾三级) | 2020-10-15 14:03

不懂

可以再详细点吗

0

示例如下

SELECT * FROM "GMDB"."SYS_LOG" ;

SELECT
    LOG_TYPE,
    wm_concat (LOG_CONTENT) LOG_CONTENT
FROM
    "GMDB"."SYS_LOG"
GROUP BY
    LOG_TYPE;

文静~ | 园豆:257 (菜鸟二级) | 2020-10-15 14:51

那多张表该怎么查呢

@什么都不会的小胖子: 大致这样吧,具体看你的需求,变通下,可以先把其他的sql写出来,最后和这个join下

SELECT
    DISTINCT a.LOG_TYPE,b.LOG_CONTENT
FROM
    "GMDB"."SYS_LOG" A
LEFT JOIN (
    SELECT
        LOG_TYPE, wm_concat (LOG_CONTENT) LOG_CONTENT
    FROM
        "GMDB"."SYS_LOG"
    GROUP BY
        LOG_TYPE
) b ON A .LOG_TYPE = b.LOG_TYPE
支持(0) 反对(0) 文静~ | 园豆:257 (菜鸟二级) | 2020-10-15 15:00

@文静~: wm_concat什么意思呢

@什么都不会的小胖子: oracle的函数,主要用来实现字段合并,各个数据库都有这个函数,就是名称不一样

支持(0) 反对(0) 文静~ | 园豆:257 (菜鸟二级) | 2020-10-15 15:08

@什么都不会的小胖子: wm_concat也可以用LISTAGG来代替

    SELECT
        LOG_TYPE, LISTAGG(LOG_CONTENT,',') WITHIN  GROUP (ORDER BY LOG_CONTENT)
    FROM
        "GMDB"."SYS_LOG"
    GROUP BY
        LOG_TYPE
支持(0) 反对(0) 文静~ | 园豆:257 (菜鸟二级) | 2020-10-15 15:13

@文静~sqlsever用什么呢

@什么都不会的小胖子: STUFF 函数,具体百度搜索下,就有很多案例

支持(0) 反对(0) 文静~ | 园豆:257 (菜鸟二级) | 2020-10-15 15:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册