博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL和LINQ按年月、按类型显示文章篇数
阅读量:2119 次
发布时间:2019-04-30

本文共 2505 字,大约阅读时间需要 8 分钟。

创建测试数据:

 

 

/* 文章表:Article  */

CREATE TABLE Article(ID int,TypeID int,Title nvarchar(50),AddDate datetime)

INSERT Article SELECT 1, 1, N'文章1','2009-10-2'
UNION ALL SELECT 2, 1, N'文章2','2009-10-11'
UNION ALL SELECT 3, 1, N'文章3','2009-10-21'
UNION ALL SELECT 4, 1, N'文章4','2009-11-1'
UNION ALL SELECT 5, 1, N'文章5','2009-11-2'
UNION ALL SELECT 6, 2, N'文章6','2009-12-3'
UNION ALL SELECT 7, 2, N'文章7','2009-12-8'
UNION ALL SELECT 8, 3, N'文章8','2009-12-8'
UNION ALL SELECT 9, 3, N'文章9','2009-12-10'
UNION ALL SELECT 10, 3,N'文章10','2009-12-12'
GO

 

/* 文章类型表:Type  */

CREATE TABLE Type(ID int,Name nvarchar(50))

INSERT Type SELECT 1, N'C#'
UNION ALL SELECT 2, N'JS'
UNION ALL SELECT 3, N'SQL'
GO

 

 

执行查询:

 

select * from Article

 

ID          TypeID      Title           AddDate                                               

----------- ----------- ------------ ----------------------
1           1           文章1           2009-10-02 00:00:00.000
2           1           文章2           2009-10-11 00:00:00.000
3           1           文章3           2009-10-21 00:00:00.000
4           1           文章4           2009-11-01 00:00:00.000
5           1           文章5           2009-11-02 00:00:00.000
6           2           文章6           2009-12-03 00:00:00.000
7           2           文章7           2009-12-08 00:00:00.000
8           3           文章8           2009-12-08 00:00:00.000
9           3           文章9           2009-12-10 00:00:00.000
10         3           文章10         2009-12-12 00:00:00.000
(所影响的行数为 10 行)

 

select * from Type

 

ID          Name                                              

----------- -------------
1           C#
2           JS
3           SQL
(所影响的行数为 3 行)

 

 

(1) 按年月查询文章篇数

select left(convert(char(8),AddDate,112),6) as AddDate, count(ID) as count from Article

group by left(convert(char(8),AddDate,112),6)
order by 1 desc

 

 

AddDate  count      

-------- -----------
200912   5
200911   2
200910   3
(所影响的行数为 3 行)

 

(2) 按类型查询文章篇数

 

SELECT [Name],

  (SELECT COUNT(*) FROM Article AS a WHERE a.TypeID = t.ID) AS Count
FROM Type t

 

 

Name          count      

----------- -----------
C#              5
JS               2
SQL            3
(所影响的行数为 3 行)

 

 

 

--------------------------------------------------------------------------------------------------------------------------

 

 

23:33 2011-1-24

 

用LINQ查询实现:

 

(1)

from p in db.Articles

group p by new
{
    Year = p.AddDate.Value.Year,
    Month = p.AddDate.Value.Month
}
into g
orderby g.Key.Year descending, g.Key.Month descending
select new
{
    YM = g.Key.Year + "年" + g.Key.Month + "月",
    Count = g.Count()
}

 

(2)

from t in db.Types

select new
{
    Name = t.Name,
    Count = db.Articles.Count(a => a.TypeID == t.ID)
}

 

 

 

Lambda语法:

 

(1)

db.Articles.GroupBy(a => new {

    Year = a.AddDate.Value.Year,
    Month = a.AddDate.Value.Month
    })
    .Select(g => new {
    YM = g.Key.Year + "年" + g.Key.Month + "月",
    Count = g.Count()
    }).OrderByDescending(g => g.YM.Substring(0,4))
      .ThenByDescending(g => g.YM.Substring(5,g.YM.Length-6))

 

 

(2)

db.Types.Select(t => new

{               
    Name = t.Name,
    Count = db.Articles.Count(a => a.TypeID == t.ID)
})

 

转载地址:http://jxzrf.baihongyu.com/

你可能感兴趣的文章
开源Faac实现PCM编码AAC
查看>>
Windows下wave API 音频采集
查看>>
借船过河:一个据说能看穿你的人性和欲望的心理测试
查看>>
AndroidStudio 导入三方库使用
查看>>
Ubuntu解决gcc编译报错/usr/bin/ld: cannot find -lstdc++
查看>>
解决Ubuntu14.04 - 16.10版本 cheese摄像头灯亮却黑屏问题
查看>>
解决Ubuntu 64bit下使用交叉编译链提示error while loading shared libraries: libz.so.1
查看>>
VS生成DLL文件供第三方调用
查看>>
Android Studio color和font设置
查看>>
Python 格式化打印json数据(展开状态)
查看>>
Centos7 安装curl(openssl)和libxml2
查看>>
Centos7 离线安装RabbitMQ,并配置集群
查看>>
Centos7 or Other Linux RPM包查询下载
查看>>
运行springboot项目出现:Type javax.xml.bind.JAXBContext not present
查看>>
Java中多线程向mysql插入同一条数据冲突问题
查看>>
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>