SQL Server 2008问题与分组依据
上面的查询工作得非常好,但我只需要按FolioNumber(即-ETRN_MFTransactionGroup.FolioNumber)进行分组。按其余字段分组完全不是必需的 如果不想在其他字段上分组,则需要一些聚合函数来告诉SQL如何处理多个记录。MAX或MIN对于varchar字段很有效。求和、平均值对数值计算很有效。您必须对要从表中选择的所有内容进行分组,而不是使用聚合进行计算。如果你只按FolioNumber分组,你只能选择单个字段。正如@Guffa所说的,为了进一步扩展,如果所有内容都是内部连接,为什么你需要按所有内容分组?如果您有多个对开本编号记录,distinct无法处理(假设这是正确的逻辑),那么如果您实际希望每个SQL Server 2008问题与分组依据,sql,sql-server-2008,join,group-by,Sql,Sql Server 2008,Join,Group By,上面的查询工作得非常好,但我只需要按FolioNumber(即-ETRN_MFTransactionGroup.FolioNumber)进行分组。按其余字段分组完全不是必需的 如果不想在其他字段上分组,则需要一些聚合函数来告诉SQL如何处理多个记录。MAX或MIN对于varchar字段很有效。求和、平均值对数值计算很有效。您必须对要从表中选择的所有内容进行分组,而不是使用聚合进行计算。如果你只按FolioNumber分组,你只能选择单个字段。正如@Guffa所说的,为了进一步扩展,如果所有内容都
ETRN\u TransactionGroup.FolionMember
基于max(date)
或max(id)的一行,则此时group by是此集合的错误解决方案
您可能会发现这一点很有用:键入问题时请不要大声喊叫。它更难阅读,也不会让你更快地得到帮助。此外,当您花时间正确格式化代码时,它也会有所帮助,这同样会使代码更易于阅读和理解。谢谢
SELECT
ETRN_MFTransactionGroup.FolioNumber,
ETRN_MFTransactionGroup.PrimaryApplicantContactID,
ETRN_MFTransaction.PK_TransactionGroupID AS Expr1,
ETRN_MFTransaction.PK_SchemeProductID,
ETRN_MFTransaction.Units,
PA_E_CUSTOMER.dbo.ECUS_Contact.PK_ContactID,
PA_E_CUSTOMER.dbo.ECUS_Contact.UserID,
PA_E_CUSTOMER.dbo.ECUS_Contact.FName,
PA_E_CUSTOMER.dbo.ECUS_Contact.MName,
PA_E_CUSTOMER.dbo.ECUS_Contact.LName,
PA_E_INSTRUMENTS.dbo.EINS_MFSchemeProduct.PK_SchemeProductID AS Expr2,
PA_E_INSTRUMENTS.dbo.EINS_MFSchemeProduct.RegistrarCode,
ETRN_MFTransactionGroup.PK_TransactionGroupID
FROM
ETRN_MFTransactionGroup
INNER JOIN
ETRN_MFTransaction ON
ETRN_MFTransactionGroup.PK_TransactionGroupID = ETRN_MFTransaction.PK_TransactionGroupID
INNER JOIN
PA_E_CUSTOMER.dbo.ECUS_Contact ON
ETRN_MFTransactionGroup.PrimaryApplicantContactID =
PA_E_CUSTOMER.dbo.ECUS_Contact.PK_ContactID
INNER JOIN
PA_E_INSTRUMENTS.dbo.EINS_MFSchemeProduct ON
ETRN_MFTransaction.PK_SchemeProductID =
PA_E_INSTRUMENTS.dbo.EINS_MFSchemeProduct.PK_SchemeProductID
**GROUP BY
ETRN_MFTransactionGroup.FolioNumber,**
ETRN_MFTransactionGroup.PrimaryApplicantContactID,
ETRN_MFTransaction.PK_TransactionGroupID,
ETRN_MFTransaction.PK_SchemeProductID,
ETRN_MFTransaction.Units,
PA_E_CUSTOMER.dbo.ECUS_Contact.PK_ContactID,
PA_E_CUSTOMER.dbo.ECUS_Contact.UserID,
PA_E_CUSTOMER.dbo.ECUS_Contact.FName,
PA_E_CUSTOMER.dbo.ECUS_Contact.MName,
PA_E_CUSTOMER.dbo.ECUS_Contact.LName,
PA_E_INSTRUMENTS.dbo.EINS_MFSchemeProduct.PK_SchemeProductID,
PA_E_INSTRUMENTS.dbo.EINS_MFSchemeProduct.RegistrarCode,
ETRN_MFTransactionGroup.PK_TransactionGroupID