insert into d select 列定单编号,工程名称,公司名称,总量,日期 from a,(select b.列定单编号,b.工程名称,c.公司名称 from b join c on b.客户ID=c.客户ID) d where a.列定单编号=b.列定单编号 +所需要的条件就OK了!上面的大哥写得很好呀!只是帮忙顶一下
SELECT dbo.a.定单编号, SUM(dbo.a.本车方量) AS 总量, dbo.c.公司名称, dbo.b.工程名称, dbo.a.完成时间 FROM dbo.c INNER JOIN dbo.b ON dbo.c.客户ID = dbo.b.客户ID INNER JOIN dbo.a ON dbo.b.定单编号 = dbo.a.定单编号 GROUP BY dbo.a.定单编号, dbo.c.公司名称, dbo.b.工程名称, dbo.a.完成时间 HAVING (dbo.a.完成时间 = '2003-02-11')
楼上: 楼主要按照相同的定单编号求和本车方量,你GROUP BY dbo.a.定单编号, dbo.c.公司名称, dbo.b.工程名称, dbo.a.完成时间 group by 了那么多.有没有问题啊.
ORARichard(没钱的日子好难过啊) 的方法是对的,厉害
SELECT dbo.a.定单编号, SUM(dbo.a.本车方量) AS 总量, dbo.c.公司名称, dbo.b.工程名称, dbo.a.完成时间 FROM dbo.a left JOIN dbo.b ON dbo.b.定单编号 = dbo.a.定单编号 left JOIN dbo.c.客户ID = dbo.b.客户ID GROUP BY dbo.a.定单编号, dbo.a.完成时间
D表原来是空表呀,是不是把SELECT改成insert into D select...
是的,忘了加上insert into D了, sorry
INSERT INTO 混凝土价格表 SELECT 小票.定单编号, SUM(小票.本车方量) AS 方量, 客户.公司名称, 定单.工程名称, 小票.完成时间, 定单.浇注部位, 定单.砼级配 FROM 小票 LEFT JOIN 定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN 客户.客户ID = 定单.客户ID GROUP BY 小票.定单编号, 小票.完成时间 为什么说第一行"="附近有语法错误呀???
INSERT INTO 混凝土价格表 SELECT 小票.定单编号, SUM(小票.本车方量) AS 方量, 客户.公司名称, 定单.工程名称, 小票.完成时间, 定单.浇注部位, 定单.砼级配 FROM 小票 LEFT JOIN 定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN 客户 ON 客户.客户ID = 定单.客户ID GROUP BY 小票.定单编号, 小票.完成时间
INSERT INTO 混凝土价格表 SELECT 小票.完成时间, 小票.定单编号, 客户.公司名称, 定单.工程名称, 定单.浇注部位, 定单.砼级配, SUM(小票.本车方量) AS 方量, FROM 小票 LEFT JOIN 定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN 客户 ON 客户.客户ID = 定单.客户ID GROUP BY 小票.定单编号为什么又在"from"附近有错误了呀???left join是什么意思呀,能不能详细说明一下,谢谢了。
insert into D表([定单编号],[工程名称],[公司名称],[总量],[日期]) select a.[定单编号],b.[工程名称],c.[公司名称],sum(a.[本车方量]) as [总量],a.[日期] from A表 a inner join B表 b on a.[定单编号]=b.[定单编号] inner join C表 c on b.[客户ID]=c.[客户ID] group by a.[定单编号],b.[工程名称],c.[公司名称],[日期]
时间取的不对 看这个吧 insert into D表([定单编号],[工程名称],[公司名称],[总量],[日期]) select a.[定单编号],b.[工程名称],c.[公司名称], sum(a.[本车方量]) as [总量], cast((floor(cast(a.[日期] as float))) as datetime) as [日期] from A表 a inner join B表 b on a.[定单编号]=b.[定单编号] inner join C表 c on b.[客户ID]=c.[客户ID] group by a.[定单编号],b.[工程名称],c.[公司名称], cast((floor(cast(a.[日期] as float))) as datetime)
能否给我解释一下啊?为什么要那么多的group by,还有就是from A表 a是什么意思啊???
group by 是指按by 后的字段去分组查询,a 是A表的别名,和A表是一样的,是为了简化书写的。
001 01 4 2003-2-112:00:00
001 02 6 2003-2-112:10:00
002 03 8 2003-2-113:08:09B表 定单编号 客户ID 工程名称
001 01 东方明珠
002 02 东海大桥C表 客户ID 公司名称
01 一公司
02 二公司
D表(结果) 定单编号 工程名称 公司名称 总量 日期
001 东方明珠 一公司 10 2003-2-1
002 东海大桥 二公司 8 2003-2-1
dbo.a.完成时间
FROM dbo.c INNER JOIN
dbo.b ON dbo.c.客户ID = dbo.b.客户ID INNER JOIN
dbo.a ON dbo.b.定单编号 = dbo.a.定单编号
GROUP BY dbo.a.定单编号, dbo.c.公司名称, dbo.b.工程名称, dbo.a.完成时间
HAVING (dbo.a.完成时间 = '2003-02-11')
楼主要按照相同的定单编号求和本车方量,你GROUP BY dbo.a.定单编号, dbo.c.公司名称, dbo.b.工程名称, dbo.a.完成时间 group by 了那么多.有没有问题啊.
dbo.a.完成时间
FROM dbo.a left JOIN
dbo.b ON dbo.b.定单编号 = dbo.a.定单编号
left JOIN dbo.c.客户ID = dbo.b.客户ID
GROUP BY dbo.a.定单编号, dbo.a.完成时间
sorry
SELECT 小票.定单编号, SUM(小票.本车方量) AS 方量, 客户.公司名称, 定单.工程名称,
小票.完成时间, 定单.浇注部位, 定单.砼级配
FROM 小票 LEFT JOIN
定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN
客户.客户ID = 定单.客户ID
GROUP BY 小票.定单编号, 小票.完成时间
为什么说第一行"="附近有语法错误呀???
SELECT 小票.定单编号, SUM(小票.本车方量) AS 方量, 客户.公司名称, 定单.工程名称,
小票.完成时间, 定单.浇注部位, 定单.砼级配
FROM 小票 LEFT JOIN
定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN 客户 ON
客户.客户ID = 定单.客户ID
GROUP BY 小票.定单编号, 小票.完成时间
SELECT 小票.完成时间, 小票.定单编号, 客户.公司名称, 定单.工程名称, 定单.浇注部位,
定单.砼级配, SUM(小票.本车方量) AS 方量,
FROM 小票 LEFT JOIN
定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN
客户 ON 客户.客户ID = 定单.客户ID
GROUP BY 小票.定单编号为什么又在"from"附近有错误了呀???left join是什么意思呀,能不能详细说明一下,谢谢了。
select a.[定单编号],b.[工程名称],c.[公司名称],sum(a.[本车方量]) as [总量],a.[日期]
from A表 a
inner join B表 b on a.[定单编号]=b.[定单编号]
inner join C表 c on b.[客户ID]=c.[客户ID]
group by a.[定单编号],b.[工程名称],c.[公司名称],[日期]
看这个吧
insert into D表([定单编号],[工程名称],[公司名称],[总量],[日期])
select a.[定单编号],b.[工程名称],c.[公司名称],
sum(a.[本车方量]) as [总量],
cast((floor(cast(a.[日期] as float))) as datetime) as [日期]
from A表 a
inner join B表 b on a.[定单编号]=b.[定单编号]
inner join C表 c on b.[客户ID]=c.[客户ID]
group by a.[定单编号],b.[工程名称],c.[公司名称],
cast((floor(cast(a.[日期] as float))) as datetime)