以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 开贴学习高大尚的SQL语句 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45910) |
-- 作者:石四 -- 发布时间:2014/2/13 12:12:00 -- 开贴学习高大尚的SQL语句 接上个贴学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编辑过]
|
-- 作者:石四 -- 发布时间: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!
|
-- 作者:石四 -- 发布时间:2014/2/13 16:26:00 -- 插播,问些小白问题: SQL语句怎么运用?能象代码一样用于控件事件中么? |
-- 作者:狐狸爸爸 -- 发布时间:2014/2/13 16:28:00 -- 可以 |
-- 作者:石四 -- 发布时间:2014/2/13 16:32:00 -- 哦,那样会SQL的话很强大了呀! |
-- 作者:jspta -- 发布时间:2014/2/13 16:58:00 -- 以下是引用狐狸爸爸在2014-2-13 16:28:00的发言:
可以 什么时候能够支持具有Group by的语句的DataTable的Load那,现在要么重新Fill,要么在数据库写死,不算太方便 |
-- 作者:石四 -- 发布时间: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 -- 发布时间:2014/2/14 13:45:00 -- b.[零件名称] = c.[零件名称] and b.[工序] = c.[工序] |
-- 作者:石四 -- 发布时间:2014/2/16 11:10:00 -- 以下是引用jspta在2014-2-14 13:45:00的发言:
b.[零件名称] = c.[零件名称] and b.[工序] = c.[工序] 哦,谢谢. 又出现新的提示,特定列名. 不同表有相同的列名,需指定,要做连连看游戏.......... |
-- 作者:jspta -- 发布时间:2014/2/16 12:36:00 -- 请直接在数据库中用视图表学习如何连接各个表 |