Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2008问题与分组依据_Sql_Sql Server 2008_Join_Group By - Fatal编程技术网

SQL Server 2008问题与分组依据

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所说的,为了进一步扩展,如果所有内容都

上面的查询工作得非常好,但我只需要按FolioNumber(即-ETRN_MFTransactionGroup.FolioNumber)进行分组。按其余字段分组完全不是必需的

如果不想在其他字段上分组,则需要一些聚合函数来告诉SQL如何处理多个记录。MAX或MIN对于varchar字段很有效。求和、平均值对数值计算很有效。

您必须对要从表中选择的所有内容进行分组,而不是使用聚合进行计算。如果你只按FolioNumber分组,你只能选择单个字段。正如@Guffa所说的,为了进一步扩展,如果所有内容都是内部连接,为什么你需要按所有内容分组?如果您有多个对开本编号记录,distinct无法处理(假设这是正确的逻辑),那么如果您实际希望每个
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