日期:2014-05-18  浏览次数:20574 次

实在搞不定了,困难的集合查询实例!救命啊
有两个负责的集合语句,希望能将两语句合并在一起:

语句一:

SELECT   tableinfo.TableNo,tableinfo.TableName   TableName,
              tableinfo.TableType,tableinfo.state,tableinfo.orderstate,
              isnull(sum(opentable.qty),0)   qty,tableinfo.TableName   nameonly
FROM       tableinfo    
LEFT   OUTER   JOIN   opentable   ON   tableinfo.TableNo   =   opentable.TableNo  
                                and   opentable.Issettle= 'N '
WHERE   tableinfo.state <> '禁用 '
Group   BY  
            tableinfo.TableNo,tableinfo.TableName,tableinfo.TableType,
            tableinfo.state,tableinfo.orderstate
Order   BY  
            right(space(10)+tableinfo.tableno,10)

说明:此查询结果为
TableNO,......,........,     .....       ,   ...
----------------------
001 001 卡座 占用 未订 5 001
002 002 卡座 占用 未订 10 002
003 003 卡座 占用 未订 5 003
004 004 卡座 占用 未订 15 004
005 005 卡座 占用 未订 3 005
006 006 卡座 空闲 未订 0 006
007 007 卡座 空闲 未订 0 007
008 008 卡座 空闲 未订 0 008


语句二:
SELECT   tableinfo.TableNo,   UniteTable.Groupno,      
              sum(     isnull(foodmoney,0)+isnull(methodprice,0)     )   zje    
FROM       tableinfo  
LEFT   OUTER   JOIN   ChoiceMenu   ON   ChoiceMenu.TableNo   =   tableinfo.TableNo
                                AND    
                              (   ChoiceMenu.IsSettle   =   'N '   )   AND    
                              (   ChoiceMenu.IsGiven   =   'N '   )     AND   (choiceMenu.qty   -
                                  choicemenu.delqty)> 0  
LEFT   OUTER   JOIN   UniteTable   ON   tableinfo.TableNo   =   UniteTable.Tableno    
WHERE   (   tableinfo.state   =   '占用 '   )  
GROUP   BY   UniteTable.Groupno,   tableinfo.TableNo      

说明:此查询结果为
TableNO,     ....,         zje,    
---------------------------
001 NULL 2100.00
002 NULL 2710.00
003 NULL .00
004 NULL 10.00
005 NULL 980.00
A05 NULL 1130.00
A06 NULL 1160.00
A07 NULL .00
A08 NULL .00
AK2 NULL 7380.00


如何将语句二的   "zje "   结果   对应放在语句一的后面,并显示出来?

其语句的意义是:
语句一:列出所有符合条件的桌台号,同时显示每已开台的客人数量,未开台的显示0
语句二:列出当前桌台号的消费总额(没有消费的台号金额不显示或显示0)

最终意义是:
列出所有符合条件的桌台号,对于已经开台的桌台号,累计出该桌台的消费金额。


求大侠救命啊!!


------解决方案--------------------
select a.*, b.zje from

(SELECT tableinf