SELECT IIF(EMPTY(vp_state),' ',State) as GrpState, ; IIF(EMPTY(vp_orderdate),{},OrderDate as GrpOrdDate, ; IIF(EMPTY(vp_itemcode),' ',ItemCode as GrpItmCode, ; count(*) ; FROM mytable ; GROUP BY 1,2,3Note that I've renamed the fields State, OrderDate and ItemCode because sometimes VFP gets messed up if you use the same name as a field in the expression. You should probably also give a name to the count field so you can access it programmatically.
>SELECT State, OrderDate, ItemCode, count(*) FROM mytable ; >WHERE IIF(EMPTY(?vp_state), "Ignore State", "Group by State") ; > AND IIF(EMPTY(?vp_orderdate), "Ignore OrderDate", "Group by OrderDate") ; > AND IIF(EMPTY(?vp_itemcode), "ItemCode", "Group by ItemCode") ; >GROUP BY 1,2,3 > >*Pass State: >State OrderDate ItemCode Count >TX {} '' 5 >NM {} '' 3 > >*Pass OrderDate: >State OrderDate ItemCode Count >'' {7/1/2006} '' 2 >'' {8/1/2006} '' 6 > >*Pass State and OrderDate: >State OrderDate ItemCode Count >TX {7/1/2006} '' 1 >TX {8/1/2006} '' 4 >NM {7/1/2006} '' 1 >NM {8/1/2006} '' 2 >>