程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在 SQL Server 2008 中获得一行的计数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在 SQL Server 2008 中获得一行的计数?

开发过程中遇到如何在 SQL Server 2008 中获得一行的计数的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在 SQL Server 2008 中获得一行的计数的解决方法建议,希望对你解决如何在 SQL Server 2008 中获得一行的计数有所启发或帮助; @H_675_2@SELECT ROW_numbER() OVER (PARTITION BY A.Inq_Inquiry_KID ORDER BY A.Inq_InquiryDatE) AS RN,A.Inq_Inquiry_No,COUNT(d.Inq_ConLengthID) CASE WHEN d.Inq_ConLengthID = 113 THEN CONVERT(varchar(10),COUNT(d.Inq_ConLengthID)) ELSE '' END AS Length20,CASE WHEN d.Inq_ConLengthID <> 113 THEN CONVERT(varchar(10),COUNT(d.Inq_ConLengthID)) ELSE '' END AS Length40 FROM Inquiry.tbl_SE_InquiryEntry A left JOIN Inquiry.tbl_SE_ContainerType d ON A.Inq_Inquiry_KID = d.Inq_InquiryID WHERE a.Inq_Inquiry_No = 'BOM/CRM/00047' GROUP BY A.Inq_Inquiry_No,A.Inq_Inquiry_KID,A.Inq_InquiryDate,d.Inq_ConLengthID

运行这个查询我得到这个结果:

@H_675_2@RN Inq_Inquiry_No Length20 Length40 ------------------------------------------------- 1 BOM/CRM/00047 1 2 BOM/CRM/00047 1

但我想要这个结果:

@H_675_2@RN Inq_Inquiry_No Length20 Length40 ------------------------------------------------- 1 BOM/CRM/00047 1 1

我使用的是 RN=1 然后我得到了这个不正确的结果:

@H_675_2@RN Inq_Inquiry_No Length20 Length40 ------------------------------------------------- 1 BOM/CRM/00047 1

请帮帮我

解决方法

从分组中删除 Inq_ConLengthId,并使用条件聚合:

SELECT 
    ROW_numbER() OVER (PARTITION BY A.Inq_Inquiry_Kid ORDER BY A.Inq_InquiryDatE) AS RN,A.Inq_Inquiry_No,COUNT(d.Inq_ConLengthId)
    COUNT(CASE 
       WHEN d.Inq_ConLengthId = 113 
          THEN 1 END) AS Length20,COUNT(CASE 
       WHEN d.Inq_ConLengthId <> 113 
          THEN 1 END) AS Length40
FROM 
    Inquiry.tbl_SE_InquiryEntry A
LEFT JOIN 
    Inquiry.tbl_SE_ContainerType d ON A.Inq_Inquiry_Kid = d.Inq_InquiryId
WHERE 
    a.Inq_Inquiry_No = 'BOM/CRM/00047'
GROUP BY
    A.Inq_Inquiry_No,A.Inq_Inquiry_Kid,A.Inq_InquiryDate

大佬总结

以上是大佬教程为你收集整理的如何在 SQL Server 2008 中获得一行的计数全部内容,希望文章能够帮你解决如何在 SQL Server 2008 中获得一行的计数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。