Он точно говорит вам, что не так в сообщении об ошибке. При использовании in
вы можете указать только один столбец в списке выбора.
Если вы измените свой запрос на этот, он должен работать нормально.
Select Status from [transaction] where TransactionID
IN (select MAX(CAST(TransactionID AS VARCHAR(36))) as [TransactionID]
FROM [transaction]
WHERE dbo.getday(StartSaleTime) >= '5/1/2011' and dbo.getday(StartSaleTime) <= '5/3/2011' and Status > -1 And TransactionNo like 'EL%' And TransactionType = 4
GROUP BY CustomerID, debit HAVING ( COUNT(CustomerID) > 1 ))
Вы можете указать несколько столбцов, но только при использовании EXISTS , а не IN