救命啊,哪们帮帮我

hunanchina 2006-10-31 12:01:46

/*
查看签到历史情况
*/
CREATE PROCEDURE [dbo].[_ListLog]
@date datetime=null
AS
declare @dayNo int,
@sql varchar(8000),
@i int,
@m int

if @date is null
set @date=getdate()

set @date=dateadd(day,1-day(@date),@date)
set @dayNo=datediff(day,@date,(dateadd(month,1,@date)))
set @i=1
select @dayNo as dayNo
select * into #temp from signin where Datediff(month,TheDate,@date)=0

set @sql='Select username,'
while @i<=@dayNo
begin
set @sql=@sql+' D'+cast(@i as nvarchar)+'=(select UserFlag from #temp B where B.UserID=A.UserID and Datediff(day,'''+cast(@date as nvarchar)+''',TheDate)='+cast(@i-1 as nvarchar)+'),'+char(13)
set @i=@i+1
end
set @sql=@sql+' S0=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=0),'+char(13)
set @sql=@sql+' S1=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=1),'+char(13)
set @sql=@sql+' S2=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=2),'+char(13)
set @sql=@sql+' S3=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=3),'+char(13)
set @sql=@sql+' S4=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=4),'+char(13)
set @sql=@sql+' S5=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=5),'+char(13)
set @sql=@sql+' S6=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=6) ,'+char(13)
set @sql=@sql+' S7=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=7),'+char(13)
set @sql=@sql+' S8=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=8),'+char(13)
set @sql=@sql+' S9=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=9),'+char(13)
set @sql=@sql+' S10=(select count(*) from #temp B where A.UserID=B.UserID and userFlag=10),'+char(13)

set @sql=@sql+'userid from [User] A order by userName,userKind '
--print (@sql)
exec(@sql)
GO


这是显示所有的数据,但我想根据userkind来显示数据

signin表:

CREATE TABLE [dbo].[SignIn] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[TheDate] [smalldatetime] NULL ,
[UserID] [int] NULL ,
[UserName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserKind] [int] NULL ,
[UserFlag] [int] NULL ,
[SignInTime] [datetime] NULL ,
[Explain] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[userIP] [nvarchar] (15) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

user表:

CREATE TABLE [dbo].[User] (
[userID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[username] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[userkind] [float] NULL ,
[userpwd] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

...全文
79 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hunanchina 2006-10-31
  • 打赏
  • 举报
回复
无人问津,哎
hunanchina 2006-10-31
  • 打赏
  • 举报
回复
userKind是部门,

现在上面的语法是显示全部数据,但我只想显示每个部门的数据
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-31 12:01
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。