VFP НЕ поддерживает два предложения "DISTINCT" в одном запросе ... ПЕРИОД ... Я даже тестировал на своей собственной простой таблице, ПРЯМО изнутри VFP, такой как
select count( distinct Col1 ) as Cnt1, count( distinct col2 ) as Cnt2 from MyTable
вызывает сбой.Я не знаю, почему вы пытаетесь выполнить DISTINCT, поскольку вы просто тестируете условие ... Точнее, вам кажется, что вы просто хотите СЧЕТЧИК записей для каждой категории критериев вместо DISTINCT
, потому что выне являются "alias.field" ссылками на ваши столбцы в запросе, я не знаю, какой столбец является основой чего.Однако, чтобы помочь вам справиться с DISTINCT, вы, похоже, запускаете приложение WITHIN в VFP, когда используете предложение «INTO CURSOR» (которое не связано с какой-либо разработкой OleDB .net), я бы предварительно запросил и сгруппировалэти критерии, что-то вроде ...
select list_code,
donor,
max( iif( language != 'F' and renew = '0' and type = 'IN', 1, 0 )) as EQualified,
max( iif( language = 'F' and renew = '0' and type = 'IN', 1, 0 )) as FQualified
from
list_code
group by
list_code,
donor
into
cursor cGroupedByDonor
, так что приведенное выше ТОЛЬКО получит счет 1 на донора за код списка, независимо от количества подходящих записей.Кроме того, если одна запись как «F», а другая - НЕ, то вы будете иметь значение 1 в КАЖДОМ из столбцов ... Тогда вы можете сделать что-то вроде ...
select
list_code,
sum( EQualified ) as DistEQualified,
sum( FQualified ) as DistFQualified
from
cGroupedByDonor
group by
list_code
into
cursor cDistinctByListCode
тогда беги от этого ...