Запрос не возвращает никаких записей хотя и дает мне результат но в другой базе данных
Проблема
Как отследить этот запрос, чтобы узнать причину, по которой он возвращает нулевые записи .
запрос ниже работает в базе данных и дает мне результаты, но не дает мне никакого результата в другой базе данных
Как отладить или отследить его, чтобы узнать, почему он не дает мне никакого результата .
SELECT TrxInvH.Trxtype, TrxInvH.TrxYear, TrxInvH.TrxSerial, TrxInvH.TrxDate, Items.ItemAraName, Items.ItemLatName, Units.UnitLatName, Stores.StoreAraName, Stores.StoreLatName, Units.UnitAraName, TrxInvF.displayQty, TrxInvF.Quantity, TrxInvF.Price, TrxInvF.Displayprice, trxtypeConfig.TrxArbName, trxtypeConfig.TrxEngName, TrxInvF.ItemCode, trxtypeConfig.BranchCode, Stores.StoreLatName AS Expr1, Stores.StoreAraName AS TPSTOREARA, CASE WHEN TrxInvF.Account = '' OR TrxInvF.Account IS NULL THEN TrxInvH.AccountID ELSE TrxInvF.Account END AS AccountCode, (SELECT AccAraName FROM Accounts WHERE (AccCode = (CASE WHEN TrxInvF.Account = '' OR TrxInvF.Account IS NULL THEN TrxInvH.AccountID ELSE TrxInvF.Account END))) AS AccaraName, (SELECT AccEngName FROM Accounts AS Accounts_3 WHERE (AccCode = (CASE WHEN TrxInvF.Account = '' OR TrxInvF.Account IS NULL THEN TrxInvH.AccountID ELSE TrxInvF.Account END))) AS AccLatName, TrxInvF.SubLdgCode1, (SELECT SubLdgAraName FROM AllSubLedgerCode WHERE (TrxInvF.SubLdgCodeType1 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode1 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubAraName1, (SELECT SubLdgLatName FROM AllSubLedgerCode AS AllSubLedgerCode_26 WHERE (TrxInvF.SubLdgCodeType1 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode1 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubLatName1, TrxInvF.SubLdgCode2, (SELECT SubLdgAraName FROM AllSubLedgerCode AS AllSubLedgerCode_25 WHERE (TrxInvF.SubLdgCodeType2 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode2 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubAraName2, (SELECT SubLdgLatName FROM AllSubLedgerCode AS AllSubLedgerCode_24 WHERE (TrxInvF.SubLdgCodeType2 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode2 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubLatName2, TrxInvF.SubLdgCode3, (SELECT SubLdgAraName FROM AllSubLedgerCode AS AllSubLedgerCode_23 WHERE (TrxInvF.SubLdgCodeType3 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode3 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubAraName3, (SELECT SubLdgLatName FROM AllSubLedgerCode AS AllSubLedgerCode_22 WHERE (TrxInvF.SubLdgCodeType3 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode3 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubLatName3, TrxInvF.SubLdgCode4, (SELECT SubLdgAraName FROM AllSubLedgerCode AS AllSubLedgerCode_21 WHERE (TrxInvF.SubLdgCodeType4 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode4 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubAraName4, (SELECT SubLdgLatName FROM AllSubLedgerCode AS AllSubLedgerCode_20 WHERE (TrxInvF.SubLdgCodeType4 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode4 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubLatName4, TrxInvF.SubLdgCode5, (SELECT SubLdgAraName FROM AllSubLedgerCode AS AllSubLedgerCode_19 WHERE (TrxInvF.SubLdgCodeType5 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode5 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubAraName5, (SELECT SubLdgLatName FROM AllSubLedgerCode AS AllSubLedgerCode_18 WHERE (TrxInvF.SubLdgCodeType5 = SubLdgTypeCode) AND (TrxInvF.SubLdgCode5 = SubLdgCode) AND (TrxInvF.BranchCode = BranchCode)) AS SubLatName5, trxtypeConfig.CalcAvgPrice, trxtypeConfig.CalcFifoPrice, Items.AvgPrice1, Items.AvgPrice2, Items.TotalVal1, Items.TotalVal2, Items.TotalQty1, Items.TotalQty2, TrxInvF.CostAverage, TrxInvH.createuserid, TrxInvH.CreateDateAndTime, TrxInvH.UserId, TrxInvH.DateAndTime FROM TrxInvH INNER JOIN TrxInvF ON TrxInvH.BranchCode = TrxInvF.BranchCode AND TrxInvH.Trxtype = TrxInvF.Trxtype AND TrxInvH.TrxYear = TrxInvF.TrxYear AND TrxInvH.TrxSerial = TrxInvF.TrxSerial INNER JOIN trxtypeConfig ON TrxInvF.BranchCode = trxtypeConfig.BranchCode AND TrxInvF.Trxtype = trxtypeConfig.trxtypecode INNER JOIN Units ON TrxInvF.Unitcode = Units.UnitCode INNER JOIN Items ON TrxInvF.ItemCode = Items.ItemCode INNER JOIN Stores ON TrxInvF.StoreId = Stores.StoreCode AND TrxInvF.BranchCode = Stores.BranchCode LEFT OUTER JOIN AllSubLedgerCode AS allsubledgercode_4 ON TrxInvF.SubLdgCode4 = allsubledgercode_4.SubLdgCode AND TrxInvF.SubLdgCodeType4 = allsubledgercode_4.SubLdgTypeCode AND TrxInvF.SubLdgBranch4 = allsubledgercode_4.BranchCode LEFT OUTER JOIN AllSubLedgerCode AS allsubledgercode_3 ON TrxInvF.SubLdgCode3 = allsubledgercode_3.SubLdgCode AND TrxInvF.SubLdgCodeType3 = allsubledgercode_3.SubLdgTypeCode AND TrxInvF.SubLdgBranch3 = allsubledgercode_3.BranchCode LEFT OUTER JOIN AllSubLedgerCode AS allsubledgercode_2 ON TrxInvF.SubLdgBranch2 = allsubledgercode_2.BranchCode AND TrxInvF.SubLdgCodeType1 = allsubledgercode_2.SubLdgTypeCode AND TrxInvF.SubLdgCode2 = allsubledgercode_2.SubLdgCode LEFT OUTER JOIN AllSubLedgerCode AS AllSubLedgerCode_17 ON TrxInvF.SubLdgCode1 = AllSubLedgerCode_17.SubLdgCode AND TrxInvF.SubLdgCodeType1 = AllSubLedgerCode_17.SubLdgTypeCode AND TrxInvF.SubLdgBranch1 = AllSubLedgerCode_17.BranchCode LEFT OUTER JOIN AllSubLedgerCode AS allsubledgercode_1 ON TrxInvH.BranchCode = allsubledgercode_1.BranchCode AND TrxInvH.TargetType = allsubledgercode_1.SubLdgTypeCode AND TrxInvH.TargetCode = allsubledgercode_1.SubLdgCode LEFT OUTER JOIN AllSubLedgerCode AS allsubledgercode_5 ON TrxInvF.SubLdgCode5 = allsubledgercode_5.SubLdgCode AND TrxInvF.SubLdgCodeType5 = allsubledgercode_5.SubLdgTypeCode AND TrxInvF.SubLdgBranch5 = allsubledgercode_5.BranchCode WHERE 1 = 1
Что я уже пробовал:
Запрос не возвращает никаких записей хотя и дает мне результат но в другой базе данных
PIEBALDconsult
Наверное, ему так же трудно читать, как и мне. Это очень трудно разобрать, особенно без знания соответствующих таблиц.
Я настоятельно рекомендую не использовать подзапросы, так как они, как правило, работают плохо. В последние несколько лет я использую общие табличные выражения, потому что они часто работают лучше, и я нахожу их более легкими для тестирования.