这个我不知道怎么做才好 高手进来看看~~~~

netboygg 2006-02-06 10:27:20
SELECT xiongkahao as 胸卡号, xingming as 姓名, xingbie as 性别, danweimc as 单位, gangweimc as 岗位, laobaomc as 劳保, shuliang as 数量, guige as 规格, lingqusj as 领取时间, jldanwei as 计量单位 FROM gerenjilu Where (DATEADD(month,( SELECT Top 1 qixian FROM gangweilaobao WHERE (gangweimc = '" + gangweimcTextBox.Text.ToString() + "')), lingqusj) < GETDATE()) AND (xiongkahao = '" + xiongkahaoTextBox.Text.ToString() + "')

这条语句只能查出一条与劳保名称相对应的劳保用品到期的列表,问题是相同岗位的劳保用品有好几种并且每种的周期都不一样,怎么写语句才能把到期该更换的物品都查询出来?

gangweilaobao表
-------------------------
gangweimc laobaomc qixian

gerenjilu 表
-------------------------
xiongkahao xingming xingbie danweimc gangweimc laobaomc shuliang guige lingqusj jldanwei

其中个人记录表里gangweimc laobaomc和岗位劳保表里的gangweimc laobaomc相对应 也要用到岗位劳保表里的qixian字段和个人记录表里的lingqusj做日期比较

告诉我该怎么做 先谢谢了!!!
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liliysc05 2006-02-07
  • 打赏
  • 举报
回复
你的语句又长又乱,select就from一个表,用selcet *应该简洁很多吧,建议数据库不要用中文,也不要用中文拼音,应该尽量用英文来表达,这样可读性会好点。
netboygg 2006-02-07
  • 打赏
  • 举报
回复
谢谢 sp1234(半梦半醒之间,情人沙漠上好像只有我一颗不死的种子。) 可以用 不过改成
SELECT x.xiongkahao AS 胸卡号, x.xingming AS 姓名, x.laobaomc AS 劳保
FROM gerenjilu AS x INNER JOIN
gangweilaobao AS g ON g.gangweimc = x.gangweimc AND g.laobaomc = x.laobaomc
WHERE (DATEPART(year, DATEADD(month, g.qixian, x.lingqusj)) = DATEPART(year, @time)) AND (DATEPART(month, DATEADD(month, g.qixian, x.lingqusj))
= DATEPART(month, @time)) AND (x.gangweimc = @gangweimc) AND (x.xiongkahao = @xiongkahao)

因为更换的单位时间是月 所以我加了datepart 不知道对不对 比较也改成=了 这样对单个职工可以查到当月该发的劳保,但是要查出每个单位的该发的物品不知道是在程序里写循环还是用sql就可以了
  • 打赏
  • 举报
回复
@"SELECT x.xiongkahao as 胸卡号, x.xingming as 姓名
FROM gerenjilu as x
inner join gangweilaobao as g
on g.gangweimc=x.ganweimc and g.laobaomc=x.laobaomc
where DATEADD(month,g.qixian,x.lingqusj) < GETDATE()
and x.gangweimc = '" + gangweimcTextBox.Text.ToString() + "'
and x.xiongkahao = '" + xiongkahaoTextBox.Text.ToString() + "'"

另外,你的ganweilaobao表需要将(gangweimc,laobaomc)设置为主键或者唯一(unique)索引。如果不满足唯一约束,这个查询可能是错误的(有重复的)。
califord 2006-02-06
  • 打赏
  • 举报
回复
数据库的设计最好不要用到中文呀,朋友,你的问题没看懂,只给你这个建议

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧