09.07.2012 13:07
Mtirt
 
А если такое условие: and d4.beginsat <= &Dateend and (d4.endsat>=&dateStart or d4.endsat is null) ?

Правда в любом случае, это будет не совсем корректно.
Лучше в условия запроса давать одну дату.
09.07.2012 13:19
Mr_Vito
 
спасибо, но
как то это не правильно,
надо всё таки мой вариант довести до ума, что б работал и не висел сутками, пока не знаю как, буду дальше думать
09.07.2012 16:35
akonev
 
соблюдение цепочки контракт-заказ-приход у вас обязательно?
может подумать в сторону отслеживание цепочки и сверки каждой накладной с конкретным контрактом?
09.07.2012 18:11
vdm
 
Цитата:
Mr_Vito надо всё таки мой вариант довести до ума, что б работал и не висел сутками, пока не знаю как, буду дальше думать
Насколько долго твой запрос работает?

Это проверь
Код:
SELECT createdat, clientindex, locationto, article
  FROM (SELECT DISTINCT	q2.createdat, q2.clientindex, q2.locationto, q1.article
          FROM smspec q1, smdocuments q2
		 WHERE 	 q1.doctype = q2.doctype
		   AND q1.docid = q2.id
		   AND q1.doctype = 'WI'
		   AND q2.opcode = 0
		   AND q2.docstate >= 2
		   AND q2.createdat BETWEEN :datestart AND :dateend) m
 WHERE NOT EXISTS
		(SELECT 1
		   FROM smdocuments d1,
		        smspec d2,
				smcontractlocations d3,
				smcontracts d4
		  WHERE	d1.doctype = 'CO'
		    AND d2.doctype = d1.doctype
			AND d2.docid = d1.id
			AND d3.doctype = d1.doctype
			AND d3.id = d1.id
			AND d4.doctype = d1.doctype
			AND d4.id = d1.id
			AND m.createdat BETWEEN NVL (d4.beginsat, m.createdat)
						       AND NVL (d4.endsat, m.createdat)
			AND d1.clientindex = m.clientindex
			AND d3.locationid = m.locationto
			AND d2.article = m.article)
Посмотрел только, что запускается, результаты не проверял.
10.07.2012 07:44
Mr_Vito
 
Цитата:
vdm Насколько долго твой запрос работает?
вчера за 5 часов висел, пока не оборвал

Цитата:
vdm Это проверь
Код:
SELECT ...
Посмотрел только, что запускается, результаты не проверял.
здорово!
Всё отлично работает и быстро, спасибо огромное!
10.08.2012 10:05
konst
 
Вот еще один вариант решения похожей задачи:
https://olegon.ru/showpost.php?p=102562&postcount=2
Часовой пояс GMT +3, время: 13:39.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.