Я достаточно базовый c SQL пользователь Server Management Studio, я знаю, что мне обычно нужно, но это в новинку для меня.
У меня есть текущий экстракт, который выбирает все строки из таблицы ci_periodicBillings, где скорость составляет «165,56» или «-165,56» в заданный период времени. Это нормально и работает, но теперь у меня есть дополнительное требование, чтобы отображать все записи из ci_periodicBillings независимо от скорости, КАК ДОЛГО, КАК У КЛИЕНТА ЕСТЬ ПО МЕНЬШЕ ОДНОЙ, где скорость составляет «165,56» или «-165,56». поэтому у клиента A есть 5 строк с разными скоростями, но 1 - «165,56» - мне нужно показать все 5 строк, что у клиента B 7 строк с разными скоростями, и 0 соответствует критериям - мне ни одна из них не нужна.
У меня уже есть приведенный ниже код для выбора значений «156,56» или «-156,56», но мне нужно добавить новое требование для отображения всех строк, принадлежащих каждому клиенту.
Спасибо за любую помощь.
SELECT f.NAME AS Home,
c.forename,
c.surname,
c.resid,
Cast(c.admission AS DATE) AS ADMISSION,
Cast(c.leavedate AS DATE) AS LEAVE,
fm.fundingname,
p.description AS ServiceType,
Cast(pb.billstart AS DATE) AS BILLSTART,
Cast(pb.endbill AS DATE) AS ENDBILL,
a.accountcode,
a.accountname
FROM cs_facilities f
LEFT JOIN cs_clients c
ON f.guid = c.facility
LEFT JOIN ci_periodicbillings pb
ON c.guid = pb.client
LEFT JOIN cs_fundingmethods fm
ON pb.restype = fm.fundingid
LEFT JOIN ci_products p
ON pb.product = p.guid
LEFT JOIN cs_accounts a
ON pb.accountguid = a.account
WHERE ( ( billstart BETWEEN '2019-04-01' AND '2020-03-31' )
OR ( endbill BETWEEN '2019-04-01' AND '2020-03-31' )
OR ( billstart <= '2019-04-01'
AND endbill >= '2020-03-31' ) )
AND ( pb.rate = '165.56'
OR pb.rate = '-165.56' )
ORDER BY f.NAME,
c.surname ASC,
c.forename ASC