2011-01-18 2 views
0

MS Access 2007을 C# 응용 프로그램과 함께 사용하고 있습니다. 다음은 현재 사용중인 쿼리입니다. 이 쿼리는 정상적으로 작동합니다.MS Access 관련 문제 Query

string qry = "Select sum(InvoiceAmount) as InvAmt, InvoiceDate From Invoices Group By InvoiceDate Having (InvoiceDate between #"+previousPaymentDate+"# and #"+currentPayDate+"#)"; 

위의 쿼리는 송장 금액 그룹의 합계를 송장 날짜별로 반환합니다.

수표가 반송되어 일부 송장이 생성되었습니다. 예를 들어 25000/-는 수표 바운스의 인보이스 금액입니다. 이 송장을 "ChequeBounced"부울 필드를 사용하여 표시했습니다. 위의 쿼리에이 절을 포함시킬 수있는 방법이 있습니까? 이 쿼리를 다소 좋아해주세요. -

string qry = "Select sum(InvoiceAmount) as InvAmt, InvoiceDate From Invoices Group By InvoiceDate Having (InvoiceDate between #"+previousPaymentDate+"# and #"+currentPayDate+"#) and ChequeBounced='False'"; 

시간을 공유해 주셔서 감사합니다.

SELECT InvoiceDate, Sum(InvoiceAmount) AS InvAmount 
FROM Invoices 
WHERE ChequeBounced=False 
GROUP BY InvoiceDate 
HAVING (InvoiceDate between #"+previousPaymentDate+"# and #"+currentPayDate+"#) 

내가 선명도 따옴표로 SQL을 배치하지 않은 :에 대해 어떻게

답변

2

. False는 Access에서 0과 동일한 기본 제공 상수이므로 부울 필드에 대해 인용해서는 안됩니다. 날짜가 yyyy/mm/dd 형식인지 확인하는 것이 가장 좋으며 그렇지 않으면 예기치 않은 결과가 발생할 수 있습니다.

+0

날짜는 형식으로 저장되지 않습니다. 문자열 형식을 사용하여 날짜 값을 나타낼 때 걱정할 필요가 있습니다. 기준에 ISO 형식으로 제한되지 않습니다 - 당신은 모호하지 않은 데이터 형식을 사용할 수 있습니다. –