insert into d select 列定单编号,工程名称,公司名称,总量,日期 from a,(select b.列定单编号,b.工程名称,c.公司名称 from b join c on b.客户ID=c.客户ID) d where a.列定单编号=b.列定单编号

解决方案 »

  1.   

    insert into d select 列定单编号,工程名称,公司名称,总量,日期 from a,(select b.列定单编号,b.工程名称,c.公司名称 from b join c on b.客户ID=c.客户ID) d where a.列定单编号=b.列定单编号 +所需要的条件就OK了!上面的大哥写得很好呀!只是帮忙顶一下
      

  2.   

    人家要的是总方量,那肯定要用到group by 和sum()
      

  3.   

    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
      

  4.   

    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')
      

  5.   

    楼上:
    楼主要按照相同的定单编号求和本车方量,你GROUP BY dbo.a.定单编号, dbo.c.公司名称, dbo.b.工程名称, dbo.a.完成时间 group by 了那么多.有没有问题啊.
      

  6.   

    ORARichard(没钱的日子好难过啊) 的方法是对的,厉害
      

  7.   

    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.完成时间
      

  8.   

    D表原来是空表呀,是不是把SELECT改成insert into D select...
      

  9.   

    是的,忘了加上insert into D了,
    sorry
      

  10.   

    INSERT INTO 混凝土价格表
    SELECT 小票.定单编号, SUM(小票.本车方量) AS 方量, 客户.公司名称, 定单.工程名称, 
           小票.完成时间, 定单.浇注部位, 定单.砼级配
    FROM 小票 LEFT JOIN
          定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN
          客户.客户ID = 定单.客户ID
    GROUP BY 小票.定单编号, 小票.完成时间
    为什么说第一行"="附近有语法错误呀???
      

  11.   

    INSERT INTO 混凝土价格表
    SELECT 小票.定单编号, SUM(小票.本车方量) AS 方量, 客户.公司名称, 定单.工程名称, 
           小票.完成时间, 定单.浇注部位, 定单.砼级配
    FROM 小票 LEFT JOIN
          定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN 客户 ON
          客户.客户ID = 定单.客户ID
    GROUP BY 小票.定单编号, 小票.完成时间
      

  12.   

    INSERT INTO 混凝土价格表
    SELECT 小票.完成时间, 小票.定单编号, 客户.公司名称, 定单.工程名称, 定单.浇注部位, 
          定单.砼级配, SUM(小票.本车方量) AS 方量,
    FROM 小票 LEFT JOIN
          定单 ON 定单.定单编号 = 小票.定单编号 LEFT JOIN
          客户 ON 客户.客户ID = 定单.客户ID
    GROUP BY 小票.定单编号为什么又在"from"附近有错误了呀???left join是什么意思呀,能不能详细说明一下,谢谢了。
      

  13.   

    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.[公司名称],[日期]
      

  14.   

    时间取的不对
    看这个吧
    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)
      

  15.   

    能否给我解释一下啊?为什么要那么多的group by,还有就是from A表 a是什么意思啊???
      

  16.   

    group by 是指按by 后的字段去分组查询,a 是A表的别名,和A表是一样的,是为了简化书写的。