【问题标题】:SQL: How to display items from one table according to categories from another table, and counting the total items in each categorySQL:如何根据另一个表中的类别显示一个表中的项目,并计算每个类别中的项目总数
【发布时间】:2012-05-10 16:25:26
【问题描述】:

我有两个表,一个类别表和一个项目表。类别表有以下字段:

   project_No
   cat_ID
   cat_Description

items 表有以下字段:

  project_No
  cat_ID
  item_Id
  item_description
  item_Qty
  item_cost

现在我需要编写一个查询来显示每个类别的所有项目,但我还想计算每个类别中的项目数量

现在输出必须首先列出该类别中的项目之前的类别,然后列出该类别中的所有项目,并给出该类别中项目的总数,然后是另一个类别和项目,例如

  Beverages
     Coffee          $1.50     4
     Tea             $2.50     4
     Total Items               2        
  Tin Food
      Peas             $0.50   10
      Meatballs        $1      20
      total items              2      

我需要编写这个 SQL 并将它放在我在 Delphi 中的 TADOQuery 组件中

谁能帮帮我

【问题讨论】:

  • 对于 SQL 问题,最好发布每个表中具有代表性的示例行和预期结果的伪表。
  • 设置SQL Fiddle 会更好。

标签: sql database delphi-xe2


【解决方案1】:

选择 category_table.Cat_Description、item_table.Item_Desctiption、SUM(Item_table.Item_Cost) 作为 Total_Cost、SUM(item_Table.Item_Qty) 作为 Total_Qty 从 Items_table 加入 Category_Table 在 items_Table.Cat_Id = Category_Table.Cat_Id 和 items_Table.Project_no = Category_table.Project_no

这将为您提供结果:

饮料咖啡 $1.50 4 饮料 茶 $2.50 4 锡粮豌豆 $0.50 10 锡食品肉丸 $1.00 20

我总结了您的费用,但如果您只想列出费用,请从选项中删除总和。

【讨论】:

  • 这个答案唯一缺少的是,在每个类别之后,例如饮料,也必须是总项目,必须计算每个类别中的项目数
  • 就个人而言,我可能会将其放入 Excel 中并做一个数据透视表,但也许有更好的方法来做到这一点。
  • 我考虑过使用虚拟表,因为我认为不使用虚拟表我将无法获得我想要的结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
相关资源
最近更新 更多