4个表
表1:user_name(id,dept_id,user_name,pwd)其中:dept_id是所属部门id
表 2:dept_name(id,pid,dept_name)其中:pid为父id,这里用不上
表3:dz_name(id,dz_name)此表为物品分类表
表4:dz_list(id,dz_id,f_uid,s_uid,dz_count,f_datetime)其中:dz_id对应物品分类表的 id,f_uid对应发货人id,s_uid对应收货人id,dz_count对应单笔发货单的数量,f_datetime为发货时间现要求:按物品名分组前台通过 提交 部门id(比如:id=2)及某个时间段,查询dz_list表,通过dz_list要得到所对应部门在某个时间段的发货量:
发货部门 收货部门 物品名 数量我全是用select嵌套,觉得好麻烦而且很容易出错。 望各位高手指点,谢谢!
表1:user_name(id,dept_id,user_name,pwd)其中:dept_id是所属部门id
表 2:dept_name(id,pid,dept_name)其中:pid为父id,这里用不上
表3:dz_name(id,dz_name)此表为物品分类表
表4:dz_list(id,dz_id,f_uid,s_uid,dz_count,f_datetime)其中:dz_id对应物品分类表的 id,f_uid对应发货人id,s_uid对应收货人id,dz_count对应单笔发货单的数量,f_datetime为发货时间现要求:按物品名分组前台通过 提交 部门id(比如:id=2)及某个时间段,查询dz_list表,通过dz_list要得到所对应部门在某个时间段的发货量:
发货部门 收货部门 物品名 数量我全是用select嵌套,觉得好麻烦而且很容易出错。 望各位高手指点,谢谢!
解决方案 »
- 这个怎么写啊?
- 菜鸟触发器问题请教
- 帮我实现一个数据转换过程
- 又来提个问题, 发现喜欢上提问题了, 能学到很多东西..
- VIP与非VIP用户的区别问题。
- 大家帮我看看这个SQL语句如何写?关于遍历的。
- 一个存储过程使用一段时间后,其执行时间就变得很长,真的有这个事情吗?如何在程序运行时候修改存储过程.(通过程序语言好,sql本身也好)
- 将字符型字段设为索引和将数值型字段设置成索引效果是一样的吗?
- vfp 精选问题两篇!解决立即给分,200分不够再加!希望能得到你的指点!最好能详细点!有详细代码并能解决200送!
- 急急急~~来看来看
- SQL Server数据库名称怎么设置为IP地址
- CONCAT函数的问题------对数据类型而言运算符无效。运算符为concatenation,类型为text
select a.dept_name 发货部门,b.dept_name 收货部门,c.dz_name 物品名,dz_count 数量
from dz_list t left join [user_name] t1 on t1.id=t.f_uid left join dept_name a on t1.dept_id=a.id
left join [user_name] t2 on t2.id=t.s_uid left join dept_name b on t2.dept_id=b.id
left join dz_name c on t.dz_id=c.id
dz_list中的记录可能是同一个物品名称(dz_list是一个清单),所以同物品名的需要 sum,group by。按物品名分组,怎么弄呢?
--try:select 发货部门=a.dept_name,收货部门=d.dept_name,物品名=f.dz_name,sum(counts) from dept_name a,user_name b,
(select dz_id,f_uid,s_uid,counts=sum(dz_count) from dz_list group by f_uid,s_uid,dz_id)c,
dept_name d,user_name e,dz_name f
where a.id=b.dept_id and b.id=c.f_uid and c.dz_id=f.id
and d.id=e.dept_id and e.id=c.s_uid
group by a.dept_name,b.dept_name,f.dz_name
select 发货部门=a.dept_name,收货部门=d.dept_name,物品名=f.dz_name,sum(counts) from dept_name a,user_name b,
(select dz_id,f_uid,s_uid,counts=sum(dz_count) from dz_list group by f_uid,s_uid,dz_id)c,
dept_name d,user_name e,dz_name f
where a.id=b.dept_id and b.id=c.f_uid and c.dz_id=f.id
and d.id=e.dept_id and e.id=c.s_uid
group by a.dept_name,b.dept_name,f.dz_name
方法二:select a.dept_name 发货部门,b.dept_name 收货部门,c.dz_name 物品名,dz_count 数量
from dz_list t
left join [user_name] t1 on t1.id=t.f_uid
left join dept_name a on t1.dept_id=a.id
left join [user_name] t2 on t2.id=t.s_uid
left join dept_name b on t2.dept_id=b.id
left join dz_name c on t.dz_id=c.id