早教吧作业答案频道 -->其他-->
CREATEPROCEDUREdbo.pdirinfo@uservarchar(20),@parentpathvarchar(255)ASSELECT*FROM(SELECTd.[user],d.path,d.parentpath,d.dir,d.createtime,ISNULL(SUM(f.[count]),0)AS[count],ISNULL(SUM(f.[size]),0)AS[size]FROMdbo.tdirectoriesdLEFTO
题目详情
CREATE PROCEDURE dbo.p_dir_info @user varchar(20),@parent_path varchar(255) AS
SELECT *
FROM (SELECT d.[user],d.path ,d.parent_path,d.dir,d.create_time,
ISNULL(SUM(f.[count]),0) AS [count],ISNULL(SUM(f.[size]),0) AS [size]
FROM dbo.t_directories d LEFT OUTER JOIN
(SELECT path,COUNT([file]) AS [count],SUM([size]) AS [size]
FROM t_files
GROUP BY path) f ON d .path = f.path
WHERE d.[user] = @user and d.parent_path=@parent_path GROUP BY d.path ) dir ORDER BY create_time
其中table为
CREATE TABLE [dbo].[t_directories] (
[id] [int] IDENTITY (1,1) NOT NULL ,
[user] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[path] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[parent_path] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[dir] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[create_time] [datetime] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_files] (
[id] [int] IDENTITY (1,1) NOT NULL ,
[user] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[file] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[path] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[size] [bigint] NOT NULL ,
[upload_time] [datetime] NOT NULL
) ON [PRIMARY]
SELECT *
FROM (SELECT d.[user],d.path ,d.parent_path,d.dir,d.create_time,
ISNULL(SUM(f.[count]),0) AS [count],ISNULL(SUM(f.[size]),0) AS [size]
FROM dbo.t_directories d LEFT OUTER JOIN
(SELECT path,COUNT([file]) AS [count],SUM([size]) AS [size]
FROM t_files
GROUP BY path) f ON d .path = f.path
WHERE d.[user] = @user and d.parent_path=@parent_path GROUP BY d.path ) dir ORDER BY create_time
其中table为
CREATE TABLE [dbo].[t_directories] (
[id] [int] IDENTITY (1,1) NOT NULL ,
[user] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[path] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[parent_path] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[dir] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[create_time] [datetime] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_files] (
[id] [int] IDENTITY (1,1) NOT NULL ,
[user] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[file] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[path] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[size] [bigint] NOT NULL ,
[upload_time] [datetime] NOT NULL
) ON [PRIMARY]
▼优质解答
答案和解析
d.[user], d.path , d.parent_path, d.dir, d.create_time,这几个没有出现在group by中,是没有办法取得到的,要想得到就要在group by中加上他们,或者用聚合
你如果原意是只想根据path分组而又想得到上面几个字段的换还是加个游标吧
你如果原意是只想根据path分组而又想得到上面几个字段的换还是加个游标吧
看了 CREATEPROCEDUR...的网友还看了以下:
英语翻译Du bist die Ruh,Der Friede mild,Die Sehnsucht 2020-05-17 …
● 网页中代码<input type=text name="foo" size=20>定义了 (67 2020-05-26 …
● 网页中代码<input type=text name="foo" size=20>定义了(67) 2020-05-26 …
● 网页中代码<input type=text name="foo" size=20>定义了 (67 2020-05-26 …
● 在Windows操作系统下,FTP客户端可以使用(67)命令显示客户端目录中的文件。(67)A. 2020-05-26 …
计算机命令“dir”的英语读音是?想知道dir的标准英语读音. 2020-07-20 …
还是关于通配符的题目在下列带有通配符的文件名中,能显示ABD-98.exe的是?()A.DIRAB 2020-07-25 …
CREATEPROCEDUREdbo.pdirinfo@uservarchar(20),@pare 2020-07-26 …
c#获取Pen画线之后的交叉点坐标g.DrawLine(pen,0,20*i,pictureBox1 2020-11-01 …
p{font-size:10.5pt;line-height:150%;margin:0;paddi 2020-11-12 …