Запрос на различие между запасом и в режиме продажи

У меня две таблицы. Таблица A содержит один столбец Приоритет. Таблица B содержит приоритет, лот и заказчик.

Таблица A

Priority -------- 122 123 124 

Таблица B

 Priority | Lotid | salesorderline -------------------------------- 122 | 14257 | 4 122 | 14528 | 6 122 | 14782 | 4 122 | 14587 | 0 

Я ожидаю результатов, таких как:

 Priority | TotalLot | salesorder | In Stock ------------------------------------------- 122 | 4 | 3 | 1 

Если salesorderline больше 0, чем его продавец, иначе акции

Таким образом, для каждого Приоритета в Table A (который я буду называть Priorities ) вам нужны агрегированные данные для каждой группы строк в Table B ( Lots )?

Существует несколько способов создания этого запроса. Самый простой – это один запрос с заданными совокупными функциями:

 SELECT Lots.Priority, COUNT(*) AS TotalLots, COUNT(CASE WHEN SalesOrderLine > 0 THEN 1 ELSE NULL END) AS SalesOrder, COUNT(CASE WHEN SalesOrderLine <= 0 THEN 1 ELSE NULL END) AS InStock FROM Lots INNER JOIN Priorities ON Priorities.Priority = Lots.Priority -- this JOIN doesn't do anything because the Priorities table does not contain any useful data at this point GROUP BY Priority ORDER BY Priority ASC 

Обратите внимание, что я чувствую, что ваш дизайн базы данных SalesOrder Я не понимаю, почему строка SalesOrder / Lot должна представлять, как что-то находится в запасе или нет, а перегрузка SalesOrderLine чтобы дать ему смысл, – плохой дизайн.

Interesting Posts

SQL подсчитывает повторяющиеся значения для нескольких таблиц

Выберите Top row из каждой группы

Что работает лучше: несколько хранимых процедур sql-сервера с одним результатом или единая многозадачная хранимая процедура

Как получить повторяющиеся строки, содержащие номер первой строки в SQL Server?

Подавление сообщения 208 на SQL

Выберите конкретные столбцы из двух таблиц

Заполнение столбца с использованием данных из того же столбца

Как написать запрос T-Sql, который будет выводить 1, если значение в столбце таблицы A соответствует значению в столбце таблицы B, 0 в противном случае?

Каким должно быть заменено ключевое слово SQL «ISABOUT» ?

Как заполнить типизированный набор данных, синхронизировать его и получать обновления при изменении данных?

SQL, чтобы выбрать только одну запись в отношениях «один ко многим»

Как использовать целочисленное значение с запросом SQL Server с использованием HashBytes

Как создать базу данных SQL Server во время установки

Разделение списка значений, разделенных пробелами, на SQL-сервере

SQL: короткое замыкание не работает. «Нулевой или пустой полнотекстовый предикат» после перехода на SQL Server 2012

Давайте будем гением компьютера.