(MerStockDay):          ID/MerID/AreDate/StorageID/StockNum/KeepSign  
(IntStorage):            ID/BillID/MerID(与IntStorageBill表中的ID号关联)/ArisesNum/TicketNum/MerMemo  
(IntStorageBill):    ID/ArisesDate/StorageID/BillNum/Operator  
以上为各表中的字段名,括号内的是表名。Access  2000数据库  
我写的查询代码如下:  
 
SELECT  DISTINCT    
             MerStockDay.MerID,  
             MerStockDay.StorageID,  
             TabSIAN.SIAN    
FROM  MerStockDay    
LEFT  JOIN  (SELECT  SUM(IntStorage.ArisesNum)  AS  SIAN,  
                       IntStorageBill.StorageID,  
                       IntStorage.MerID    
               FROM  IntStorageBill    
               RIGHT  JOIN  IntStorage  ON  IntStorage.BillID=IntStorageBill.ID    
               WHERE  IntStorageBill.ArisesDate=#2006-08-28#    
               GROUP  BY  IntStorage.MerID,IntStorageBill.StorageID)  AS  TabSIAN    
ON  TabSIAN.MerID=MerStockDay.MerID  AND  TabSIAN.StorageID=MerStockDay.StorageID  
查询结果不能显示出TabSIAN.SIAN字段,  
如果把最后一句改为ON  TabSIAN.MerID=MerStockDay.MerID  
可以显示出来,得数正确,但是不相应的行,也会显示相同的得数。  
请各位大侠指点?不甚感激!对了,在下急用,在线等!

解决方案 »

  1.   

    单独查询
    SELECT  SUM(IntStorage.ArisesNum)  AS  SIAN,  
                           IntStorageBill.StorageID,  
                           IntStorage.MerID    
                   FROM  IntStorageBill    
                   RIGHT  JOIN  IntStorage  ON  IntStorage.BillID=IntStorageBill.ID    
                   WHERE  IntStorageBill.ArisesDate=#2006-08-28#    
                   GROUP  BY  IntStorage.MerID,IntStorageBill.StorageID是不是很多StorageID是null?
      

  2.   

    DISTINCT去掉是什么效果?
      

  3.   

    其实我的语句中还有N个LEFT JOIN,所以我不可以用RIGHT JOIN,不过还是谢谢楼上的关心。