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


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

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

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
开贴学习高大尚的SQL语句  发帖心情 Post By:2014/2/13 12:12:00 [只看该作者]

接上个贴学SQL语句

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=45827&page=1&star=2

 

多表查询 inner join

Select [领用部门],[商品名称] ,sum(数量) as 数量, sum(数量*单价) as 金额 from (select [出库单编号], b.[商品名称], [数量], [单价] from {出库明细} as b inner join {商品表} as c on b.[商品代码] = c.[商品代码]) as a inner join {出库} as d ON a.[出库单编号] = d.[出库单编号] group by [领用部门],[商品名称]

 

貌似4个表:a,b,c,d

a表及查询表:领用部门,商品名称,数量,金额

b表:出库单编号,商品名称(表b),数量,单价(从商品表按商品代码查找)

c表(商品表)

d表:出库表

不知对不对,头大了.....

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

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


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

参考帮助文件:

Month

返回给定日期的月份。

例如统计1999年各月的销售额:

SELECT Month(日期) AS 月, SUM(数量) AS 数量 FROM {订单} WHERE Year(日期) = 1999 GROUP BY Month(日期)

 

按月分组汇总

Select Month(日期) AS 月,[领用部门],[商品名称] ,sum(数量) as 数量, sum(数量*单价) as 金额 from (select [出库单编号], b.[商品名称], [数量], [单价] from {出库明细} as b inner join {商品表} as c on b.[商品代码] = c.[商品代码]) as a inner join {出库} as d ON a.[出库单编号] = d.[出库单编号] group by Month(日期) ,[领用部门],[商品名称]
 
结果OK!

 


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


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

插播,问些小白问题:

SQL语句怎么运用?能象代码一样用于控件事件中么?


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/2/13 16:28:00 [只看该作者]

可以


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


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

哦,那样会SQL的话很强大了呀!

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


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

以下是引用狐狸爸爸在2014-2-13 16:28:00的发言:

可以


什么时候能够支持具有Group by的语句的DataTable的Load那,现在要么重新Fill,要么在数据库写死,不算太方便



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


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

语法:

SELECT 字段列表 FROM {表1} INNER JOIN {表2} ON {表1}.列名 = {表2}.列名

ON关键词指定两个表通过哪一列进行连接,指定的字段必须具备相同的数据类型和长度。

如果某个字段在不止一个表中出现,必须在Select语句中明确表的名称,格式为: {表名}.列名

 

请问如果两个表通过不止一个列连接,能用ON连接不?

 

两个连接列:零件名称,工序

我这么用:

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

提示运行错误:

语法错误 (操作符丢失) 在查询表达式 'b.[零件名称] = c.[零件名称],b.[工序] = c.[工序]' 中。


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


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

b.[零件名称] = c.[零件名称] and b.[工序] = c.[工序]

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


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

以下是引用jspta在2014-2-14 13:45:00的发言:
b.[零件名称] = c.[零件名称] and b.[工序] = c.[工序]

哦,谢谢.

又出现新的提示,特定列名.

不同表有相同的列名,需指定,要做连连看游戏..........


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


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

请直接在数据库中用视图表学习如何连接各个表

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