Я работаю над созданием запроса, но с трудным временем придумываю правильные решения. Вот как мои данные выглядят ...SQL Server выбрать требуемую помощь в запросе
У меня около 10 000 записей - счетов в моем tblBilling
.
- Каждая запись имеет уникальный идентификационный номер в диапазоне от приблизительно 10 - 13000.
Однако мой первичный ключ является
BillNo
что в моих записях есть 1.В случае, когда счет был возвращен , еще одна строка добавляется в ТПС, но в этом случае BillNo равно 2.
- Кроме того, я еще один столбец называется
AdjType
, который может быть либо а, в, с- , когда BillNo - 2, AdjType = B
- , но для обычного БиллаNo 1 - значение NULL.
Так это выглядит ...
tblBilling
ID BillNo Units TotalPaid AdjType
-------------------------------------
10 2 17 230 NULL
Так это нормальный Билл, где BillNO 1 - это означает, что он был оплаченный счет ,
Кроме того, вы могли бы иметь BIllNO2, который, скорее всего, возврат, который будет выглядеть следующим образом ....
ID BillNo Units TotalPaid AdjType
--------------------------------------
10 2 -17 -230 B
Таким образом, здесь мы отрицая единицы, потому что его возврата и в этом случае ADJType = B
Оба вместе, если я SELECT * FROM tblBilling где ID = 10 я получаю это ....
ID BillNo Units TotalPaid AdjType
-----------------------------------------
10 1 17 230 NULL
10 2 -17 -230 B
Теперь моя главная цель состоит в том, чтобы выбрать все записи из tblBilling
, ч но я не хочу выбирать какие-либо записи, у которых есть BillNo 2, связанный с ними. В принципе, если запись имеет BillNO = 1 - это рекорд, который мне нужен. Нет записей, которые имеют BillNo = 2. Пожалуйста помоги!
BillNo является ПК или поле флага? –
Возможно, вы можете использовать NOT EXISTS для этого довольно легко. https://msdn.microsoft.com/en-us/library/ms188336.aspx –
@JuanCarlosOropeza PK – LD16