sql - 无法组合 3 个不同的 SQL 表项并获得总和

标签 sql asp-classic

我在使用我父亲在他的公司报告时使用的系统时遇到了问题。我没有 build 它,但我正在尽我最大的努力围绕它。它是 ASP,我不太精通它(或为此编写 sql)。

基本上,我正在使用三个表,Item、ItemHistory 和 Devices。在那些表格中,我想做的是

  • 通过“项目历史”表中的“序列号”列获取用户处理过的项目
  • 将该序列号与“项目”表中的“序列号”列进行比较以获取设备类型(从设备列中)
  • 使用设备类型从“设备”表中的“点”列中获取预定数值
  • 存储该值并将其添加到由查询拉回的任何其他值,然后显示总数。

  • *见更新*

    如您所见,如果设备类型包含在 ItemHistory 表中会容易得多,但事实并非如此。我试过加入表格,但不断收到错误(这是因为我相当肯定缺乏知识)。查询是按日期范围和用户(来自 ItemHistory 表),但我想我已经弄清楚了。我只是无法让它引用所有表格并将“点”加在一起。

    任何帮助是极大的赞赏!如果您需要更多信息,请告诉我。先感谢您。

    更新

    所以基本上我现在遇到的问题是查询不断返回“BOF 或 EOF 为真,或者当前记录已被删除。请求的操作需要当前记录。”我认为这是造成的,因为它只是在点列中添加数字。

    我认为我最后一个问题的问题是我让每个设备看起来都有“点”,但实际上有一定数量的设备(比如五个),并且可能有多个序列号都指向一个设备.我认为这是查询遇到麻烦的地方(但我可能是错的)。此外,我的 sql 语句看起来与下面发布的一个 littlebobbytables 非常相似,除了添加了我自己的变量。

    这是数据库的样子。

    项目历史表

    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
    

    最佳答案

    您可以将积分相加,并按用户 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]
    

    关于sql - 无法组合 3 个不同的 SQL 表项并获得总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240833/

    相关文章:

    asp-classic - 经典 ASP - 获取完整的 url 名称

    mysql - 利用在一个 SQL 查询中完成的工作来简化第二个 SQL 查询?

    mysql - 在mysql查询中找到多行的最大列集

    sql - 在此上下文中不允许使用名称 "X"。有效表达式是常量、常量表达式和变量。不允许使用列名

    SQL: 选择时出现 ORA-00933 错误

    mysql - w3wp.exe 使 IIS 8.5 经典 ASP 页面崩溃

    javascript - 使用 DateAdd() 在 Javascript/Classic ASP 中设置日期格式

    sql - 根据分组依据中特定列的最大值从一行中选择一条信息?

    javascript - ASP Classic 和 JavaScript 检查 session 状态

    c# - 从经典 ASP 将 HTML 解析为 Web 服务