Foxtable(狐表)用户栏目专家坐堂 → 按照另一个表开始、截止日期统计年度


  共有2508人关注过本帖树形打印复制链接

主题:按照另一个表开始、截止日期统计年度

帅哥哟,离线,有人找我吗?
cd_tdh
  11楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3078 积分:20576 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/17 15:28:00 [只看该作者]

 

[此贴子已经被作者于2018/9/18 9:15:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 15:35:00 [只看该作者]

看看这里

 

http://www.foxtable.com/webhelp/scr/1911.htm

 

比如代码

 

Dim r As Row
For i As Integer = 0 To Tables("统计").Rows.Count(True) - 1
    r = Tables("统计").Rows(i,True)
    If r.IsGroup AndAlso r.Level = 0 Then
        r("所属机构") = Tables("统计").Rows(i-1,True)("所属机构")
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  13楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3078 积分:20576 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/17 17:00:00 [只看该作者]

老师,用SQLQuery合并多个表数据后,另外单独增加一列“备注”列一直不对呢,因为现在两个表都有“备注”列,不需要引用数据。

Select {分支机构管理}.所属机构,承包合同_起始日期,承包合同_到期日期,项目名称,中标日期,中标金额,datediff(yyyy,承包合同_起始日期,中标日期)+year(承包合同_起始日期) As 统计年份 Fro m {分支机构管理} Inner JOIN {中标统计} ON {中标统计}.[所属机构] = {分支机构管理}.[所属机构]


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 17:21:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  15楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3078 积分:20576 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/17 19:15:00 [只看该作者]

汗,我把他想复杂了。

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  16楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3078 积分:20576 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/18 9:16:00 [只看该作者]

老师,麻烦看看这语句哪儿不对??

Select  {分支机构管理}.所属机构,承包合同_起始日期,承包合同_到期日期,项目名称,中标日期,中标金额,dateadd(yyyy,datediff(yyyy,承包合同_起始日期,中标日期),承包合同_起始日期) as 统计年份,iif(中标日期 > 统计年份,datediff(yyyy,承包合同_起始日期,中标日期) + year(承包合同_起始日期),datediff(yyyy,承包合同_起始日期,中标日期) + year(承包合同_起始日期) -1 ) Fro m {分支机构管理} Inner JOIN {中标统计} ON {中标统计}.[所属机构] = {分支机构管理}.[所属机构]

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180918091331.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/18 9:48:00 [只看该作者]

你用的是sqlserver还是access?如果是sqlserver,是没有iif函数de;如果是access,datediff函数那里,yyyy要用单引号包裹的 'yyyy'

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  18楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3078 积分:20576 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/18 9:51:00 [只看该作者]

用的sqlserver,混淆了,这样写报错:统计年份无效

Select  {分支机构管理}.所属机构,承包合同_起始日期,承包合同_到期日期,项目名称,中标日期,中标金额,dateadd(yyyy,datediff(yyyy,承包合同_起始日期,中标日期),承包合同_起始日期) as 统计年份,case when 中标日期 > 统计年份 then datediff(yyyy,承包合同_起始日期,中标日期) + year(承包合同_起始日期) else datediff(yyyy,承包合同_起始日期,中标日期) + year(承包合同_起始日期) -1 end Fro m {分支机构管理} Inner JOIN {中标统计} ON {中标统计}.[所属机构] = {分支机构管理}.[所属机构]

[此贴子已经被作者于2018/9/18 10:01:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/18 10:18:00 [只看该作者]

 

case when 中标日期 > 统计年份 then

 

统计年份,不能直接用的,这个列,是select之后才生成的,你要改成 dateadd(yyyy,datediff(yyyy,承包合同_起始日期,中标日期),承包合同_起始日期)

 

 

[此贴子已经被作者于2018/9/18 10:18:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  20楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3078 积分:20576 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/18 10:30:00 [只看该作者]

以下是引用有点甜在2018/9/18 10:18:00的发言:

 

case when 中标日期 > 统计年份 then

 

统计年份,不能直接用的,这个列,是select之后才生成的,你要改成 dateadd(yyyy,datediff(yyyy,承包合同_起始日期,中标日期),承包合同_起始日期)

 

 

[此贴子已经被作者于2018/9/18 10:18:07编辑过]

这样生成的列名Column1怎么去修改呢?比如改为:所属年度


 回到顶部
总数 21 上一页 1 2 3 下一页