ahmed_sa Ответов: 1

Как выбрать строки из таблицы shippolicyh, которые имеют отношение к одной строке только один trxfootersafe ?


Проблема

Как выбрать строки из таблицы shippolicyh, которые имеют отношение только к одной строке на таблице trxfootersafe ?

имеется в виду изменить запрос, который получает все policycode на shippolicyh, которые имеют только одну строку, связанную с

стол trxfootersafe .

следующий запрос не дает мне результата

так вот что я меняю .

Sample to result

policycode 1211 must not show because it have two lines on trxfootersafe table .
<pre lang="SQL">Shippolicyh
BranchCode, PolicyCode EgyPolicyNum  Sender
1             1211        3494939      12

trxfootersafe
serial  year    subldgcode1   subldgcode2  debit credit typetrxsafe
50      2019        12           1211       0     90    -1
55      2019        12           1211       90     0     1

policycode 5555 должен отображаться, потому что он имеет только одну строку в таблице trxfootersafe .

Shippolicyh
BranchCode, PolicyCode EgyPolicyNum  Sender
1             5555        3494939      12

trxfootersafe
serial  year    subldgcode1   subldgcode2  debit credit typetrxsafe
70      2019        12           5555       90     0   -1


но проблема в том что запрос выше показывает весь код политики на шипполицых таблицах которые имеют одну строку или две строки
так что как сделать так чтобы он показывал только одну строку связанную с ним
значение показать код политики номер 5555 потому что он имеет одну строку
и не показывать код политики 1211, потому что он имеет две строки

Что я уже пробовал:

SELECT
   BranchCode,PolicyCode,PolicyDate,EgyPolicyNum
FROM
    SHIPPolicyH H
WHERE
    EXISTS (
        SELECT
            COUNT (*)
        FROM
            TrxFooterSafe F
        WHERE
            SubLdgCode2 = H.PolicyCode AND BranchCode = H.BranchCode AND SubLdgCode1=H.Sender and BranchCode=1 and Debit > 0 and Credit=0 and TypeTrxSafeCode=-1
        GROUP BY
            SubLdgCode2,SubLdgCode1
        HAVING
            COUNT (*) =1
    )
ORDER BY
    PolicyCode,
    BranchCode;

1 Ответов

Рейтинг:
0

Maciej Los

Проверить это:

SELECT *
FROM SHIPPolicyH H
WHERE  EXISTS (
        SELECT COUNT (F.SubLdgCode2)
        FROM TrxFooterSafe F
        WHERE SubLdgCode2 = H.PolicyCode AND BranchCode = H.BranchCode AND SubLdgCode1=H.Sender and BranchCode=1 and Debit > 0 and Credit=0 and TypeTrxSafeCode=-1
        GROUP BY SubLdgCode2,SubLdgCode1
        HAVING COUNT (F.SubLdgCode2) =1
    )
ORDER BY
    PolicyCode,
    BranchCode;


Скрипка SQL[^]