Это интересный вопрос, я знаю это. И, возможно, это все, потому что я действительно устал.COUNT из двух разных таблиц
Теперь не вините дизайн - он испорчен, но ничего не могу с этим поделать, хорошо?
- Две таблицы, связанные идентификационным полем.
- Первая таблица содержит позиции на складе (таблица P)
- Вторая таблица содержит статьи, хранящиеся на каждой позиции на складе (таблица PA)
- ВСЕ позиции на складе присутствуют в P-таблицы (> 5000 записей)
- Каждая позиция может содержать более одной статье
- являются позиции в P-таблице, не присутствующие в ПА-таблице
Кол-во от позиционных элементов PLUS позиции не присутствует в позиционных элементах.
Есть ли действительно нет лучшего способа, чем это полнейшей глупостью ?:
SELECT SUM(row)
FROM
(
SELECT COUNT(*) row
FROM PA
UNION
SELECT COUNT(*)
FROM P
WHERE ID NOT IN
(
SELECT P_ID
FROM PA
)
) as rowcounter
Выборочные данные
Таблица P:
ID Name
1 A01
2 A03
3 B01 *
4 B02 *
Таблица PA:
ID P_ID A_ID
1 1 201 *
2 1 202 *
3 1 203 *
4 2 205 *
И возвращенный счет 6 => 4 строки из PA + 2 строки (P_ID не присутствуют в PA). Выбранные строки отмечены звездочкой (*).
Во-первых, см РЕГИСТРИРУЙТЕСЬ – Strawberry
Вы можете уточнить ваш вопрос с образцами данных и ожидаемых результатов? Вы говорите: «Я хочу считать ВСЕ позиции и позиционные элементы». Я бы ожидал, что два запроса будут возвращены вашим запросом. –
Уточнено мое задание, добавлены данные образца и ожидаемый результат. Вопрос все еще немного нечеткий, но должен быть ясным из-за нечеткости по образцовым данным. Спасибо. –