我在使用我父亲用于在公司报告的系统时遇到问题。我没有建造它,但我正尽力把它包裹起来。这是ASP,我对它并不熟悉(或者为此编写sql)。
基本上我有三个我正在使用的表,Item,ItemHistory和Devices。在那些表中,我想要做的是
* 请参阅更新 *
正如您所看到的,如果设备类型包含在ItemHistory表中会更容易,但事实并非如此。我已经尝试过加入表格但不断出错(这是因为我缺乏知识,我相当肯定)。查询是按日期范围和用户(来自ItemHistory表),但我想我已经弄明白了。我无法让它引用所有表并将“点”加在一起。
非常感谢任何帮助!如果您需要更多信息,请告诉我们。提前谢谢。
更新
所以基本上我现在遇到的问题是查询不断返回“要么BOF或EOF为True,要么当前记录已被删除。请求的操作需要当前记录。”我认为这是因为它只是在点列中添加数字。
我认为我上一个问题的问题在于我看起来每个设备都有“点”,但实际上有一定数量的设备(比如五个),并且可能有多个序列号全部指向在一台设备上。我认为这是查询遇到麻烦的地方(但我可能是错的)。另外,我的sql语句看起来非常像下面发布的一个littlebobbytables,除了我自己添加的变量。
这是数据库的样子。
ItemHistory Table
Date | SerialNumber | DeviceType | User ----------|--------------|-------------|------- 11/1/12 | 123-456-789 | NULL | Bill 11/1/12 | 456-123-987 | NULL | Bill 11/1/12 | 987-654-321 | NULL | Bill 11/1/12 | 216-897-631 | NULL | Bill 11/1/12 | 874-547-277 | NULL | Bill
项目表
SerialNumber | DeviceType -------------|------------- 123-456-789 | Device1 456-123-987 | Device2 987-654-321 | Device3 216-897-631 | Device1 874-547-277 | Device2
设备表
Device | Points ----------|---------- Device1 | 20 Device2 | 25 Device3 | 40
我希望输出结果是
User | Points --------|---------- Bill | 130
答案 0 :(得分:1)
您可以将这些点汇总在一起,并按用户ID分组:
SELECT [User], SUM(Points) AS Points
FROM ItemHistory IH
INNER JOIN Item I ON IH.SerialNumber = I.SerialNumber
INNER JOIN Devices D ON I.DeviceType = D.Device
WHERE IH.[Date] = @YourDateVariable
GROUP BY [User]