Foxtable(狐表)用户栏目专家坐堂 → 开贴学习高大尚的SQL语句


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

主题:开贴学习高大尚的SQL语句

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/2/18 11:22:00 [只看该作者]

以下是引用jspta在2014-2-16 12:36:00的发言:
请直接在数据库中用视图表学习如何连接各个表

我现在用access,就是说先在access中用视图表学习连接各个表?


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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/2/18 12:11:00 [只看该作者]

以下是引用石四在2014-2-18 11:22:00的发言:

我现在用access,就是说先在access中用视图表学习连接各个表?


是的,上面都有链接语句,多做做就熟悉SQL基本语法了


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/2/18 13:07:00 [只看该作者]

连连看游戏玩不下!

 

提示:至少一个参数没有被指定值。

 

表1(计件):批次,零件名称

表2(计件明细):姓名,批次,工序码,工序,数量,完工日期

表3(工序表):工序码,零件名称,工序,单价

查询表:月,姓名,零件名称,工序,数量,金额

SQL语句:

 

Select Month(完工日期) AS 月,[姓名],[零件名称], [工序],sum(数量) as 数量, sum(数量*单价) as 金额 from (select [批次], b.[工序], [数量], c.[单价] from {计件明细} as b inner join {工序表} as c on b.[工序码] = c.[工序码]) as a inner join {计件} as d ON a.[批次] = d.[批次] group by Month(完工日期) , [姓名],[零件名称], [工序]

 

帮忙看看,哪里需要指定值?

[此贴子已经被作者于2014-2-18 13:12:32编辑过]

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/2/18 13:33:00 [只看该作者]

修改SQL语句后提示:试图执行的查询中不包含作为合计函数一部分的特定表达式 '零件名称' 。

修改后的SQL语句:

Select Month(完工日期) AS 月,[姓名],a.[零件名称], [工序],sum(数量) as 数量, sum(数量*单价) as 金额 from (select [批次],c.[零件名称],b.[工序], [数量], c.[单价] from {计件明细} as b inner join {工序表} as c on b.[工序码] = c.[工序码]) as a inner join {计件} as d ON a.[批次] = d.[批次] group by Month(完工日期) , [姓名],d.[零件名称], [工序]


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


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

 试试这样

Select Month(完工日期) As 月,[姓名],a.[零件名称], [工序],sum(数量) As 数量, sum(数量*单价) As 金额 from (Select [批次],c.[零件名称],b.[工序], [数量], c.[单价] from {计件明细} As b inner join {工序表} As c on b.[工序码] = c.[工序码]) As a inner join {计件} As d ON a.[批次] = d.[批次] group by Month(完工日期) , [姓名],a.[零件名称], [工序]

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/2/19 9:56:00 [只看该作者]

以下是引用有点甜在2014-2-18 20:56:00的发言:
 试试这样

Select Month(完工日期) As 月,[姓名],a.[零件名称], [工序],sum(数量) As 数量, sum(数量*单价) As 金额 from (Select [批次],c.[零件名称],b.[工序], [数量], c.[单价] from {计件明细} As b inner join {工序表} As c on b.[工序码] = c.[工序码]) As a inner join {计件} As d ON a.[批次] = d.[批次] group by Month(完工日期) , [姓名],a.[零件名称], [工序]

用以上语句测试又出现前面的错误提示:至少一个参数没有被指定值。


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/2/21 9:57:00 [只看该作者]

以下是引用jspta在2014-2-18 12:11:00的发言:

按jspta指点的方法,得到如下查询表:

 


图片点击可在新窗口打开查看此主题相关图片如下:sq.jpg
图片点击可在新窗口打开查看

 

access上的语句:

 

SELECT DISTINCTROW Format$(计件明细.完工日期,'mmmm yyyy') AS [完工日期 按月], 计件明细.姓名 AS 姓名之总计, 计件.零件名称 AS 零件名称之总计, 计件明细.工序 AS 工序之总计, 工序表.单价, Sum(计件明细.数量) AS [数量 之 总计], Sum([单价]*[数量]) AS 金额

FROM (计件 LEFT JOIN 计件明细 ON 计件.批次=计件明细.批次) LEFT JOIN 工序表 ON 计件明细.工序码=工序表.工序码

GROUP BY Format$(计件明细.完工日期,'mmmm yyyy'), 计件明细.姓名, 计件.零件名称, 计件明细.工序, 工序表.单价, Year(计件明细.完工日期)*12+DatePart('m',计件明细.完工日期)-1;

参考以上将狐表SQL语句改成:

 

Select Month(完工日期) AS 月,[姓名],d.[零件名称], b.[工序],sum(数量) as 数量, sum(数量*单价) as 金额 from (select [批次], b.[工序], [数量], c.[单价] from {计件明细} as b inner join {工序表} as c on b.[工序码] = c.[工序码]) as a inner join {计件} as d ON a.[批次] = d.[批次] group by Month(完工日期) , [姓名],d.[零件名称], b.[工序]

 

结果仍提示:至少一个参数没有指定.


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


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

 如果提示至少一个参数没有指定,应该是你的列名写错了,你再留意一下。
[此贴子已经被作者于2014-2-21 19:05:43编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/2/21 21:59:00 [只看该作者]

以下是引用石四在2014-2-21 9:57:00的发言:

按jspta指点的方法,得到如下查询表:

 


图片点击可在新窗口打开查看此主题相关图片如下:sq.jpg
图片点击可在新窗口打开查看

 

access上的语句:

 

SELECT DISTINCTROW Format$(计件明细.完工日期,'mmmm yyyy') AS [完工日期 按月], 计件明细.姓名 AS 姓名之总计, 计件.零件名称 AS 零件名称之总计, 计件明细.工序 AS 工序之总计, 工序表.单价, Sum(计件明细.数量) AS [数量 之 总计], Sum([单价]*[数量]) AS 金额

FROM (计件 LEFT JOIN 计件明细 ON 计件.批次=计件明细.批次) LEFT JOIN 工序表 ON 计件明细.工序码=工序表.工序码

GROUP BY Format$(计件明细.完工日期,'mmmm yyyy'), 计件明细.姓名, 计件.零件名称, 计件明细.工序, 工序表.单价, Year(计件明细.完工日期)*12+DatePart('m',计件明细.完工日期)-1;

参考以上将狐表SQL语句改成:

 

Select Month(完工日期) AS 月,[姓名],d.[零件名称], b.[工序],sum(数量) as 数量, sum(数量*单价) as 金额 from (select [批次], b.[工序], [数量], c.[单价] from {计件明细} as b inner join {工序表} as c on b.[工序码] = c.[工序码]) as a inner join {计件} as d ON a.[批次] = d.[批次] group by Month(完工日期) , [姓名],d.[零件名称], b.[工序]

 

结果仍提示:至少一个参数没有指定.

如果你Access 保存的视图名称为 a1

那么你在FOXTABLE中 使用FILL语句加载时候,SQL 为

select * from a1 where 条件就可以了


完全不需要再转换成狐表语句。是在想转,你直接copy也就可以了不需要转换


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/2/23 10:41:00 [只看该作者]

access  中 SQL语句含左/右连接(计件 LEFT JOIN 计件明细 ON 计件.批次=计件明细.批次) LEFT JOIN 工序表 ON 计件明细.工序码=工序表.工序码)

狐表的没有:计件明细} as b inner join {工序表} as c on b.[工序码] = c.[工序码]) as a inner join {计件} as d ON a.[批次] = d.[批次]

问题可能就出在这!


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