【问题标题】:join multiple columns same table连接多个列同一个表
【发布时间】:2015-08-11 16:24:56
【问题描述】:

我正在计算我们的技术人员使用的产品数量

表格设置如下

count1,size1,count2,size 2

$sql="select SUM(count1) AS count1, size1, SUM(count2) AS count2, size2 FROM PARTS WHERE crew='$crew' GROUP BY size1 ORDER BY size1 DESC";

这可行,但显示为两个单独的列,我必须手动将两者相加。当我尝试时:

$sql="select SUM(count1) AS count1, size1, SUM(count2) AS count1, size2 AS size1 FROM PARTS WHERE crew='$crew' GROUP BY size1 ORDER BY size1 DESC";

我收到错误:组语句中的列“size1”不明确。我该如何进行?

【问题讨论】:

  • 你不能用 AS 定义一个存在的列名,size1 已经存在
  • 可能是表设置错了
  • 也许是这样,但我正在使用它

标签: mysql join multiple-columns


【解决方案1】:

这是你的意思吗?

$sql="select SUM(count1 + count2) AS count, size1 FROM PARTS WHERE crew='$crew' GROUP BY size1 ORDER BY size1 DESC";

【讨论】:

  • 除了计数似乎错误之外没有错误
【解决方案2】:

假设两个尺寸列是可互换的,您可以合并每个零件尺寸的所有两个查询,然后应用sum 计算:

SELECT   size, SUM(cnt)
FROM     (SELECT size1 AS size, count1 AS cnt FROM parts WHERE crew='$crew'
          UNION ALL
          SELECT size2 AS size, count2 AS cnt FROM parts WHERE crew='$crew') t
GROUP BY size
ORDER BY size DESC

【讨论】:

  • 我收到错误:查询错误:每个派生表都必须有自己的别名
  • 尺寸的格式为 2x4、2x6、4x6 等...例如... line1: 2, 2x4, 4, 2x6;第 2 行:1、1x4、2、2x4;第 3 行:6、4x6、2、1x4
猜你喜欢
  • 2018-12-19
  • 2021-10-29
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多