【问题标题】:Count from one table and matching count from another table从一个表计数并从另一表匹配计数
【发布时间】:2019-08-15 14:19:18
【问题描述】:

我有一个工单表和客户满意度表。 我需要从工作订单中计算不同的位置,我需要从客户满意度中计算匹配位置。公共列是wo_number

select CONVERT(VARCHAR(7), DATEADD(MONTH, DATEDIFF(MONTH, 0, WO.wo_completionDate), 0), 111) AS [Period Date],
REPLACE(RIGHT(CONVERT(VARCHAR(11), DATEADD(MONTH, DATEDIFF(MONTH, 0, WO.wo_completionDate), 0), 106), 8), ' ', '-') AS Period,
count (distinct WO.fu_unitID),
count (distinct SR.fu_unitID)
from v_surveyResultRpt as SR
INNER JOIN v_workorder AS WO on SR.wo_number = WO.wo_number
where WO.wo_isClosed = '1' and WO.wo_charge = '1' and WO.rc_code = 'CD-HM'
and
DATEDIFF(MONTH,WO.wo_completionDate,getdate()) < 6
group by DATEADD(MONTH, DATEDIFF(MONTH, 0, WO.wo_completionDate), 0)
order by CONVERT(VARCHAR(7), DATEADD(MONTH, DATEDIFF(MONTH, 0, WO.wo_completionDate), 0), 111)

期待这样的结果 YY 月,来自客户满意度调查的 Total_location,来自工作订单的总位置。 最终它会告诉我有多少客户响应了整个工作订单。

【问题讨论】:

  • 。 .我删除了 mysql 标记,因为语法显然是 SQL Server。您应该包括样本数据和所需的结果。某种 db fiddle 也会有所帮助。

标签: sql sql-server count


【解决方案1】:

如果对您有帮助,请使用下面的示例代码。

select CAST(MONTH(WO.wo_completionDate) AS VARCHAR(2)) +'-'+ CAST(YEAR(WO.wo_completionDate) AS VARCHAR(4)),
count (distinct WO.fu_unitID),
count (distinct SR.fu_unitID)
from v_surveyResultRpt as SR
INNER JOIN v_workorder AS WO on SR.wo_number = WO.wo_number
where WO.wo_isClosed = '1' and WO.wo_charge = '1' and WO.rc_code = 'CD-HM'
and DATEDIFF(MONTH,WO.wo_completionDate,getdate()) < 6
group by MONTH(WO.wo_completionDate), YEAR(WO.wo_completionDate)
order by YEAR(WO.wo_completionDate), MONTH(WO.wo_completionDate)

【讨论】:

  • 它不工作显示“无效的列名'fu_unitID'。”
  • 检查 v_workorder 中的列。我认为这与这个逻辑无关。
猜你喜欢
  • 1970-01-01
  • 2013-07-17
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多