![]() |
#12 |
Участник
|
Продолжаем эпопею с фактурами dsExecuteMarkup() класса FactureEditLinesEngineVend_RU
В методе X++: public void dsExecuteMarkup() { MarkupTrans markupCursor = markupDS.cursor(); VendInvoiceJour tJour = vendInvoiceJourDS.cursor(); VendInvoiceTrans tTrans; super(); select markupCursor where markupCursor.CustVendPosted_RU && ! markupCursor.ItemPosted_RU exists join tTrans where ( markupCursor.TransTableId == tTrans.TableId && markupCursor.TransRecId == tTrans.RecId && tTrans.PurchID == tJour.PurchId && tTrans.InvoiceId == tJour.InvoiceId && tTrans.InvoiceDate == tJour.InvoiceDate && tTrans.NumberSequenceGroup == tJour.NumberSequenceGroup && tTrans.InternalInvoiceId == tJour.InternalInvoiceId ) || ( markupCursor.TransTableId == tJour.TableId && markupCursor.TransRecId == tJour.RecId ); } Так вот теоретический вопрос: Почему в подзапросе начинается проверка вида X++: markupCursor.TransTableId == tTrans.TableId && markupCursor.TransRecId == tTrans.RecId markupCursor.TransTableId == tJour.TableId && markupCursor.TransRecId == tJour.RecId То есть X++: tTrans.TableId == markupCursor.TransTableId && tTrans.RecId == markupCursor.TransRecId А вот сам sql запрос X++: SELECT A.TRANSTABLEID,A.TRANSRECID,A.LINENUM,A.MARKUPCODE, A.CURRENCYCODE,A.VALUE,A.TAXAMOUNT,A.POSTED,A.VOUCHER, A.TRANSDATE,A.TXT,A.TAXGROUP,A.TAXITEMGROUP,A.MARKUPCATEGORY, A.TAXAUTOGENERATED,A.TAXWRITECODE,A.MODULECATEGORY,A.ORIGRECID, A.ORIGTABLEID,A.MODULETYPE,A.DEL_FULLYINVOICED,A.KEEP, A.CALCULATEDAMOUNT,A.FACTUREDAMOUNT_RU,A.CUSTVENDPOSTED_RU, A.ITEMPOSTED_RU,A.TAXVALUEVAT_RU,A.TAXAMOUNTVAT_RU, A.TAXAMOUNTEXCISE_RU,A.TAXVATTYPE_RU,A.SOURCETABLEID, A.SOURCERECID,A.MARKUPALLOCATEAFTER,A.INVENTTRANSID,A.RECID FROM MARKUPTRANS A WHERE ((A.DATAAREAID='ret') AND ((A.CUSTVENDPOSTED_RU<>0) AND ((A.ITEMPOSTED_RU=0)))) AND EXISTS (SELECT 'x' FROM VENDINVOICETRANS B WHERE ((B.DATAAREAID='ret') AND (((((([COLOR="Red"] ((A.TRANSTABLEID=492) [/COLOR]A[COLOR="#ff0000"]ND (A.TRANSRECID=B.RECID[/COLOR])) AND (B.PURCHID=' ???00019730')) AND (B.INVOICEID=' 15548')) AND (B.INVOICEDATE={ts '2005-10-02 00:00:00.000'})) AND (B.NUMBERSEQUENCEGROUP=' ')) AND (B.INTERNALINVOICEID=' ???00013750')) [COLOR="#ff0000"]OR ((A.TRANSTABLEID=491) AND (A.TRANSRECID=277411563))[/COLOR]))) ORDER BY A.DATAAREAID,A.TRANSRECID,A.TRANSTABLEID,A.LINENUM OPTION(FAST 1) На предложение "возьми да и проверь" могу ответить лишь отказом ибо почему-то даже при известных данных без изменений этот запрос выдает пустую результирующую табличку... Хотя подозреваю, что где-то что-то не так делаю :-) |
|
|
![]() |
||||
Тема | Ответов | |||
Помогите с запросом | 4 | |||
Помогите с запросом | 40 | |||
Помогите с запросом.. | 2 | |||
Помогите с SQL запросом | 8 | |||
Пожалуйста, помогите с запросом | 19 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|