怎麼樣寫這樣的sql語句,將符合某一條件的某些紀錄的某個字段(float型)的加和匯總;
adoquery2.SQL.Add('select SUM(數量*單價) 零件匯總 from partlist where 組件號=(select 組件號 from assemblylist where 組件名='''+wwDBLookupCombo7.Text+''')');哪位高手指點一下

解决方案 »

  1.   

    看你查询的数据库是什么,很多数据库支持类似case when end这样的条件查询。
      

  2.   

    你这要这样写吗?为什么不用连接查询'select SUM(數量*單價) as 零件匯總 
    from partlist as a,assemblylist as bwhere b.組件號=a.組件號 
    and   b.組件名='''+wwDBLookupCombo7.Text+''''
      

  3.   

    有三個表一個是設備匯總表,一個組件匯總表,一個是零件匯總表,一台設備包含很多組件,一個組件又包含很多零件.只有零件匯總表裡面有數量和單價,其他兩個表只有數量.也就是說組件的價格(即組件費用)是各零件的費用的總和,也就是sum(零件單價*零件數量),而設備的價格(即設備費用)就是各組件費用的總和,該麼寫sql語句實現.我用的是sql server做後台
      

  4.   

    select Sum(Sl*(select SUM(數量*單價) as 组件总价 
    from partlist as a,assemblylist as b where b.組件號=a.組件號 
    and b.組件名='''+wwDBLookupCombo7.Text+''') as 机器价格 from 组件表
      

  5.   

    还有要在From 组件表后加一个条件语句,来确定出是当前机器上的组件。select Sum(Sl*(select SUM(數量*單價) as 组件总价 
    from partlist as a,assemblylist as b where b.組件號=a.組件號 
    and b.組件名='''+wwDBLookupCombo7.Text+''') as 机器价格 from 组件表 where 机器号=当前机器号
      

  6.   

    这样不就可以了?select sum(零件单价*零件数量) 总价
    from 零件表
    where 组件号 in
    (
    select 组件号
    from 组件表
    where 设备号 in
    (
    select 设备号
    from 设备表
    where 设备名='XXXX'
    )
    )
      

  7.   

    你先在SQL中实现它再把它写到DELPHI中吧
    给你一段我的统计汇总SQL参考
    select top 10 chineseName, description, a.partno, amount, untprc
    from
    (select partno,amount=sum(poqty*untprc), untprc=sum(poqty*untprc)/sum(poqty)
    from pur_podetal where complete=1
    and (100*year('2002-10-8')+Month('2002-10-8')-(year(purdate)*100+month(purDate))=0)
    group by partno) a inner join mat_partno pn(nolock)
    on a.partno=pn.partno
    order by amount desc
      

  8.   

    select Sum(Sl*(select SUM(數量*單價) as 组件总价 
    from partlist as a,assemblylist as b where b.組件號=a.組件號 
    and b.組件名='''+wwDBLookupCombo7.Text+''') as 机器价格 from 组件表 where 机器号=当前机器号
    Sl是深麼意思???
      

  9.   

    告诉你一个简便的办法:在sql中先用这两个表建个视图(把相关地段选择进去),在程序中执行这段代码就可以了
      

  10.   

    有三個表一個是設備匯總表,一個組件匯總表,一個是零件匯總表,一台設備包含很多組件,一個組件又包含很多零件.只有零件匯總表裡面有數量和單價,其他兩個表只有數量.也就是說組件的價格(即組件費用)是各零件的費用的總和,也就是sum(零件單價*零件數量),而設備的價格(即設備費用)就是各組件費用的總和,該麼寫sql語句實現.
    Update assemblylist set assemblylist.組件費用 = a.組件費用 from (select SUM(數量*單價) as 組件費用,組件號 from partlist Group By 組件號) Where assemblylist.組件號 = a.組件號這是一個高手寫的.但運行的時候說'where'附近語法錯誤.