Select * sum() from TableName1 where Field1=(Select Field2 From TableName2 Where Field3=....)

解决方案 »

  1.   

    This example uses a derived table, a SELECT statement after the FROM clause, to return all authors’ first and last names and the book numbers for each title the author has written.USE pubsSELECT RTRIM(a.au_fname) + ' ' + LTRIM(a.au_lname) AS Name, d1.title_idFROM authors a, (SELECT title_id, au_id FROM titleauthor) AS d1WHERE a.au_id = d1.au_idORDER BY a.au_lname, a.au_fname{摘自《SQL Server Books OnLine》}  
      

  2.   

       《Delphi4.0编程技术内幕》  第十一章  TClientDataSet计 算 字 段与其他数据集一样,也可以在TClientDataSet建立的数据集中增加计算字段。计算字段的值是基于同一个记录中的其他字段计算出来的。在其他数据集中,只要用户修改了数据或当前记录发生改变,就会触发OnCalcFields事件,换句话说,计算字段的值就被计算一次。TClientDataSet引入了“内部计算字段”的概念。与一般的计算字段不同的是,内部计算字段的值将随其他字段的值一起存取,这样,只有当用户修改了数据才会触发OnCalcFields事件,如果仅仅改变了当前记录,不会触发OnCalcFields事件。也就是说,内部计算字段的值需要重新计算的机会大大减少。在处理OnCalcFields事件的句柄中,首先要判断State属性。如果State属性返回dsInternalCalc,此时需要计算内部计算字段的值。如果State属性返回dsCalcFields,此时需要计算一般的计算字段的值。11.4  统  计  值TClientDataSet增加了统计的功能,它可以基于分组自动计算总和、平均、计数、最大、最小值。当用户编辑数据时,这些统计值会自动跟着变化。11.4.1 指定统计方式要指定怎样进行统计,就要用到Aggregates属性。这个属性是一个TAggregates对象,它用于管理一组TAggregate对象。在设计期,可以单击Aggregates属性边上的省略号按钮打开如图11.1所示单击按钮可以增加一个TAggregate对象,单击按钮可以删减一个TAggregate对象,单击按钮可以把TAggregate对象前移,单击按钮可以把TAggregate对象后移。可以用字段编辑器专门创建一个用于表达统计值的字段,该字段的类型必须是“Aggregate”。Delphi 4会自动创建一个TAggregate对象,并加到Aggregates属性中。选择一个TAggregate对象,Object Inpector将显示该对象的属性。其中,Expression属性用于指定统计表达式,例如:Sum(Field1)也可以是比较复杂的表达式:Sum(Qty * Price) - Sum(AmountPaid)在表达式中,可以使用下列统计运算符:l Sum计算一组数据的总和。l Avg计算一组数据的平均值。l Count计算一组数据中的非空值的个数。l Min计算一组数据的最小值。l Max计算一组数据的最大值。除了上述几个统计运算符外,还可以使用过滤条件中所能使用的运算符,但不能嵌套。在一个表达式中,可以混合出现几个统计值或常量,但不能混合出现统计值和字段。Sum(Qty * Price){合法}Max(Field1) - Max(Field2){合法}Avg(DiscountRate) * 100{合法}Min(Sum(Field1)){非法,不能嵌套}Count(Field1) - Field2{非法,统计值和字段不能混合出现在一个表