表结构一:部门表
USE [newzb]
GO
/****** 对象: Table [dbo].[department] 脚本日期: 02/29/2012 09:05:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[department](
[Depart_id] [varchar](200) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Depart_name] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[Depar_fatherid] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[company_id] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]GO
SET ANSI_PADDING OFF表结构二:待办任务表
USE [newzb]
GO
/****** 对象: Table [dbo].[daibantask] 脚本日期: 02/29/2012 09:05:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[daibantask](
[Id] [varchar](120) COLLATE Chinese_PRC_CI_AS NOT NULL,
[username] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,
[TaskTitle] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[ispuble] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[zhuangtai] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[zhucetime] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[Endtime] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[FuZeRen] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[Contents] [varchar](8000) COLLATE Chinese_PRC_CI_AS NULL,
[beizhu] [varchar](8000) COLLATE Chinese_PRC_CI_AS NULL,
[user_Depart_id] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]GO
SET ANSI_PADDING OFF我的部门表是分上下级别的,假设我行政部,下面可能就有行政一部,行政一部下面有行政二部,一次类推,但现在我要查询行政部及行政部下面部门的待办任务信息,该怎么弄,表结构如上,求代码,多谢了
USE [newzb]
GO
/****** 对象: Table [dbo].[department] 脚本日期: 02/29/2012 09:05:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[department](
[Depart_id] [varchar](200) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Depart_name] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[Depar_fatherid] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[company_id] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]GO
SET ANSI_PADDING OFF表结构二:待办任务表
USE [newzb]
GO
/****** 对象: Table [dbo].[daibantask] 脚本日期: 02/29/2012 09:05:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[daibantask](
[Id] [varchar](120) COLLATE Chinese_PRC_CI_AS NOT NULL,
[username] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,
[TaskTitle] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[ispuble] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[zhuangtai] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[zhucetime] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[Endtime] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[FuZeRen] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL,
[Contents] [varchar](8000) COLLATE Chinese_PRC_CI_AS NULL,
[beizhu] [varchar](8000) COLLATE Chinese_PRC_CI_AS NULL,
[user_Depart_id] [varchar](120) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]GO
SET ANSI_PADDING OFF我的部门表是分上下级别的,假设我行政部,下面可能就有行政一部,行政一部下面有行政二部,一次类推,但现在我要查询行政部及行政部下面部门的待办任务信息,该怎么弄,表结构如上,求代码,多谢了
解决方案 »
- 关于C#串口收发全部是乱码。纠结。
- 用系统时间做txt文件文件名报错
- BACnet
- C# Webbrower怎么判断是否弹出确定对话框!
- VS2008 c# treeview 显示本地磁盘所有文件
- winform在程序运行中,鼠标选中控件,控件呈选中状态,并能拖动拖动鼠标改变控件大小和位置,如从工具箱中创建控件一样的效果,最好提供
- 大家有用C#写过排序算法吗?为什么我写的快速排序比插入排序还慢!?
- 能够在线程中关闭起用线程的窗口吗?
- 同一个activex控件多个IE访问后发生静态变量共享
- IPAddress问题(刚才说的不准确,大家没看懂)
- “ConsoleApplication10.Contact”不实现接口成员“ConsoleApplication10.ITelephone.DialN
- 请教如何用C#建立一个类似于QQ信息传输的软件
父部门编号为01,则第一个子部门的编号为0101,第二个子部门的编号为0102,依次类推。如果你要查某个部门(id为01)及其子部门的代办事项的话:
select * from daibantask
where user_Depart_id like '01%'
不如行政部ID是0001
下级1,2,3部的ID规定为0001001,0001002
查询的时候直接模糊查询部门ID是0001%就能查出所有0001部门和下属部门的ID
用ID关联待办任务信息
我的部门id都是guid自动生成的,下级部门的父id就是上级部门的id,这样设置的
你可以讲父ID写全
比如
行政部门ID是1111
行政部门1ID是2222
行政部门1的父ID1111
行政部门1的子部门id3333
行政部门1的子部门父ID1111|2222
你查询的时候查行政部门ID=1111 或 父节点like 1111%
就可以了
t2.username,
t2.TaskTitle
from department t1 left join daibantask t2 on t1.Depart_id = t2.user_Depart_id where 代办任务=xx
给个形式,希望有用
WHERE department.Depart_id = '行政部GUID' AND daibantask.zhuangtai = '待办任务'
WHERE department.Depart_id = '行政部GUID' AND daibantask.zhuangtai = '待办任务'
不知道是不是lz想要的
SELECT * FROM daibantask INNER JOIN department ON daibantask.user_Depart_id = department.Depart_id
WHERE department.Depart_id = '行政部GUID' AND daibantask.zhuangtai = '待办任务'
with
district as
(
-- 获得第一个结果集,并更新最终结果集
select * from department where Depart_name= '市场部'
union all
-- 下面的select语句首先会根据从上一个查询结果集中获得的id值来查询parent_id
-- 字段的值,然后district就会变当前的查询结果集,并继续执行下面的select 语句
-- 如果结果集不为null,则与最终的查询结果合并,同时用合并的结果更新最终的查
-- 询结果;否则停止执行。最后district的结果集就是最终结果集。
select a.* from department a, district b
where a.Depar_fatherid = b.Depart_id
)
select * from district
这个实现了在SQL里面实现的递归查询,但怎么在C#后台调用
要是 父子级关系 父级 有一个 ID(自动增长) 还得有个类型他是父级别的 1
子级 有一个 ID(自动增长) 在一个关联ID(就是得到父级的ID) 类型为2 父子级通过ID 与关联ID 联系。up.....
as
(
select depart_id,depart_name,depar_fatherid from department
where depart_id='02'
union all
select p.depart_id,p.depart_name,p.depar_fatherid from department p
inner join deplist d on p.Depar_fatherid=d.Depart_id
)
select t.Id,t.TaskTitle,t.username from deplist d
inner join daibantask t
on d.Depart_id=t.user_Depart_id
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter Depart_id = myCommand.Parameters.Add("@Depart_id", SqlDbType.NText);
Depart_id.Value = bumenbianhao;
SqlDataAdapter myAdapter = new SqlDataAdapter();
myAdapter.SelectCommand = myCommand; DataTable d = new DataTable();
myAdapter.Fill(d); string starttime = this.Request.Form["TextBox1"].Trim();
string endtime = this.Request.Form["TextBox2"].Trim();
string wcrenwuSql = "select * from daibantask where " + ping + " Endtime between '" + starttime + "'and '" + endtime + "'and user_Depart_id exists '"+d+"'";
这个有问题,上面将各个部门id查出来放在DataTable d 里面,但是后面的那个exists是不是这样写呢
C# codeSqlCommand myCommand = new SqlCommand("pr_diguichaxun", conn);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter Depart_id = myComm……
没人知道吗
真心不想回答
你是sql语句不会写还是C#取数据不会写?
要是sql不会写的话,就贴点表数据,然后把你想要的结果贴出来两表连接查询
select a.* from a inner join b on a.关联字段= b.关联字段
and a.条件 = ' ...'