关于在SQL Server中从同一列分割结果的问题
我正在尝试用SQL Server编写语句。我想做的是得到列中count记录的结果,用“R”除以所有记录的计数。因此,它基本上是一个列的语句,其中包含一个语句“count(invoice)”,其中invoice类似于“%R”/count(invoice)” 这是我没有除法计算的代码。我只提出了没有除法计算的语句关于在SQL Server中从同一列分割结果的问题,sql,sql-server,subquery,Sql,Sql Server,Subquery,我正在尝试用SQL Server编写语句。我想做的是得到列中count记录的结果,用“R”除以所有记录的计数。因此,它基本上是一个列的语句,其中包含一个语句“count(invoice)”,其中invoice类似于“%R”/count(invoice)” 这是我没有除法计算的代码。我只提出了没有除法计算的语句 SELECT Invoice, COUNT(ART_CURRENT__TRANSACTION.Invoice) AS Number_Revisions, MAX(
SELECT
Invoice,
COUNT(ART_CURRENT__TRANSACTION.Invoice) AS Number_Revisions,
MAX(ART_CURRENT__TRANSACTION.[Customer]) AS "Customer",
MAX(ARM_MASTER__CUSTOMER.Name) AS "Name",
MAX(ART_CURRENT__TRANSACTION.[Job]) AS Job
FROM
ART_CURRENT__TRANSACTION
LEFT OUTER JOIN
ARM_MASTER__CUSTOMER ON ARM_MASTER__CUSTOMER.Customer = ART_CURRENT__TRANSACTION.Customer
WHERE
Invoice LIKE '%R'
GROUP BY
Invoice;
我想问的是,如何添加一个列来计算以“R”/“发票编号”结尾的发票编号
谢谢你们
我想做的是得到列中count记录的结果,用“R”除以所有记录的计数
您似乎需要这样的计算:
SELECT AVG(CASE WHEN t.Invoice LIKE '%R' THEN 1.0 ELSE 0 END)
FROM ART_CURRENT__TRANSACTION t;
这假设发票
在交易表中。我认为你想做的事不需要加入
我想做的是得到列中count记录的结果,用“R”除以所有记录的计数
您似乎需要这样的计算:
SELECT AVG(CASE WHEN t.Invoice LIKE '%R' THEN 1.0 ELSE 0 END)
FROM ART_CURRENT__TRANSACTION t;
这假设
发票
在交易表中。我认为您不需要进行联接。以表格文本形式提供的示例数据和所需结果将有助于其他人正确理解您的问题。您的查询显示每个%R发票一个结果行。这是你想要的吗?对于每一张这样的发票,您都会显示交易数量。但是现在您还想显示发票的交易数量除以表中的交易总数?是吗?附带说明:看起来您希望每张发票上只有一位客户。是这样吗?否则,“客户”和“名称”可能是两个不同的客户。我甚至认为你期望每张发票只有一份工作。在这种情况下,您可能需要考虑与客户和作业分开的发票表,以便不冗余地存储数据(并且潜在地不一致)。示例数据和作为表格文本提供的期望结果将帮助其他人正确地理解您的问题。您的查询显示每个%R发票的一个结果行。这是你想要的吗?对于每一张这样的发票,您都会显示交易数量。但是现在您还想显示发票的交易数量除以表中的交易总数?是吗?附带说明:看起来您希望每张发票上只有一位客户。是这样吗?否则,“客户”和“名称”可能是两个不同的客户。我甚至认为你期望每张发票只有一份工作。在这种情况下,您可能需要考虑与客户和作业分开的发票表,以便不冗余地存储数据(并且潜在地不一致)。