Не ясно, какой синтаксис SQL вы используете.
Помните, что ваш синтаксис SQL должен соответствовать базе данных, из которой вы получаете свои данные.Синтаксис Foxpro SQL немного нестандартен и отличается от синтаксиса MySQL SQL.
Ваши теги публикации: mysql sql foxpro dbase
включают Foxpro, поэтому я могу предположить, что выиспользовать синтаксис FP SQL для запроса таблиц данных Foxpro?
Я хочу две строки gst
Если я понимаю, что вы хотите, кажется, что вы хотите, чтобы gst для результатов "P" в одной строке и gstдля "G" результаты в отдельном ряду.
Если вы получаете данные из таблицы данных Foxpro, то вы можете рассмотреть что-то вроде следующего:
SELECT (SSTA*2)as gst, IIF(Flg = "P","P","G") as SortFlg, sum(SSTAAMO) as gstamo FROM DIS WHERE FLG $ "P,G" GROUP BY 1,2
Представление добавленного поля SORTFLG и его создание (поле # 2)часть оператора GROUP BY, заставит результаты для «P» и «G» в отдельные строки результатов.Вы всегда можете удалить это дополнительное поле позже, если хотите.
Если вы получаете данные из другой базы данных с синтаксисом SQL, который не поддерживает синтаксис IIF (), вы можете использовать синтаксис CASE для создания нового SORTFLG.
EDIT: Почему я не думал об этом раньше, я понятия не имею.В любом случае, вам вообще не нужен синтаксис IIF ().Вы все еще можете ввести новое 2-е поле SORTFLG , но вместо использования команды IIF () вы можете использовать только поле FLG, но убедитесь, что вы включили его в строку GROUP BY, чтобы ваш результатбудет иметь отдельную запись "P" и запись "G".
SELECT (SSTA*2)as gst, Flg as SortFlg, sum(SSTAAMO) as gstamo FROM DIS WHERE FLG $ "P,G" GROUP BY 1,2
Удачи