2011-03-01 67 views
0

我有两个电子表格中的数据,我需要比较已安装和购买的软件数量。通用字段是两个电子表格中的前缀和客户端,但没有唯一标识符。是否可以将其他列添加到计数查询

我创建了3个表格。客户端的主键(Client_ID)和已安装和购买的外键。 #小学*外国

表: -

Client - Client.Client_ID#, Client.Client 

Installed - Installed.Client_ID*, Installed.Prefix, Installed.Publisher, Installed.Version,Installed.Amount 

Purchased -Purchase.Client_ID*, Purchase.Prefix, Purchase.Status, Purchase.Qty 

,我有问题的部分原因是大多数的记录/行是列表中多次。 E.g产品Y被记录为20行项目/行,而在于Y数量20

我想计算基于前缀和的client_ID计数(Installed.Amount)。

到目前为止,我只能计算前缀计数而不计算client_ID。是否可以合并列,以便查询将导致前缀和其他列的数量。

查询: -

SELECT Installed.Prefix, Count(Installed.Amount) AS PrefixQuantity 
FROM Installed 
GROUP BY Installed.Prefix; 

回答

0
SELECT Installed.Client_ID, Installed.Prefix, COUNT(Installed.Amount) 
AS PrefixQuantity FROM Installed GROUP BY Installed.Client_ID, Installed.Prefix 

顺便说一句,我认为你应该使用:

SELECT Installed.Client_ID, Installed.Prefix, SUM(Installed.Amount) 
AS PrefixQuantity FROM Installed GROUP BY Installed.Client_ID, Installed.Prefix 

这会给出正确的结果,即使金额列有值大于1.

+0

非常感谢,非常感谢。现在成功添加了额外的列来计算/总计查询。 – 2011-03-04 09:36:25

0
SELECT * 
FROM 
     client c 
     INNER JOIN purchase p 
     ON c.client_id = p.client_id 
     INNER JOIN (SELECT installed.prefix, 
          installed.client_id, 
          COUNT(installed.amount) prefixquantity 
        FROM installed 
        GROUP BY installed.prefix, 
          installed.client_id) counts 
     ON c.client_id = counts.client_id 
相关问题