'SELECT DISTINCT A.VALUE, A.GUIDE_ID, A.FARM_ID as TABLE_ID, -1 AS TYPE_ID, A.SOURCE_ID as SOURCE_ID, A.MEASURE_ID as MEASURE_ID, A.PERIOD_ID as PERIOD_ID, A.DATE_FROM, A.TIME_ID, A.DATE_TO, 0 as QRY_TP FROM ATTRIBUTE A WHERE (A.FARM_ID IN (-1,9698)) AND ((A.GUIDE_ID = 13 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-07-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-07-2006','DD-MM-YYYY') ) OR (A.GUIDE_ID = 13 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-08-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-08-2006','DD-MM-YYYY') ) OR (A.GUIDE_ID = 14 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-07-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-07-2006','DD-MM-YYYY') ) OR (A.GUIDE_ID = 14 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-08-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-08-2006','DD-MM-YYYY') )) ORDER BY 4,3,2'#$D#$A
Пример от моей проги, конечно многое тебе не надо но посомтреть как рботают даты тебе думаю вполне хватит

Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.