Конференция "Базы" » список несуществующих записей
 
  • ford (26.04.09 16:18) [0]
    Подскажите, как можно сделать такой вот запрос.
    Есть таблица с заказами у каждого заказа есть свой номер
    надо выдать список всех заказов в котором будут присутствовать и те которых в таблице просто не существует
    например
    есть записи
    №заказа Клиент
    1            Вася
    3            Петя
    4            Коля
    10          Рома

    в резульятате выполнения запроса надо получить
    1           Вася
    2           -
    3           Петя
    4           Коля
    5           -
    6           -
    ...
    10         Рома

    СУБД FireBird

    как такое сделать программно я представляю а вот можноли это сделать запросом к таблице??
    или посоветуйте что лучше использовать в данном случае
  • ford (26.04.09 17:23) [1]
    придумал такой вот способ,
    сделал таблицу в которой есть только одно поле №заказа и заполнил его значениями от 1 до 1000
    и сделал Left join с таблицей заказов
    ессесно где небыло заказа с таким номером то вместо заказчика стояло null
    в принципе почти то что хотелось, но :)
    может ктото предложит решение поизящнее (как говориться по Феншую) :)
  • sniknik © (26.04.09 17:52) [2]
    > может ктото предложит решение поизящнее (как говориться по Феншую) :)
    не  удалять физически записи заказов, удалять и них ссылки на  Васю, Петю, Колю, Рому...
    а то и это лишнее, вдруг понадобится история, можно просто ставить пометку типа "выполнено".
  • ford (26.04.09 18:18) [3]

    > не  удалять физически записи заказов, удалять и них ссылки
    > на  Васю, Петю, Колю, Рому...

    их никто и не удаляет
    их просто не занесли
    :)
    вот и надо собственно отобразить чего не хватает в базе

    оптимально привязать к номеру хотя конечно это не факт, но тем не менее это может отобразить что кто то не занес должную запись
  • sniknik © (26.04.09 18:29) [4]
    > их просто не занесли
    порядковые номера заказов, что руками в базу заносят? странно весьма.

    > кто то не занес должную запись
    человек за этим не должен следить. а если это не порядковый номер, а какой то "левый" с бумажки то и порядок ничего не значит, это просто идентификатор бумажки. и это может даже не быть числом.
  • ford (26.04.09 18:33) [5]

    > порядковые номера заказов, что руками в базу заносят? странно
    > весьма.

    от в том то все и дело что программа им формирует бумажку с заказом а в базу не заносит ... я не могу ничего с этим сделать
    запись о заказе отдельно фунциклирует

    вот мне и надо им сформировать отчет о пропусках, и пускай сами разбираются куда дели какуюто бумажку, поднимая все архивы
    :)
  • Игорь Шевченко © (26.04.09 19:44) [6]

    > а вот можноли это сделать запросом к таблице??


    нет. до аналитических функций в Firebird вроде не додумались, переходи на Oracle
  • Anatoly Podgoretsky © (27.04.09 09:08) [7]
    Да никуда ее (бумажку) не девали, а просто отказались от оформления заказа. Передумали.
    Кроме того насколько я понимаю, что и задним числом этот номер уже не использовать.
  • ford (27.04.09 11:11) [8]

    > Да никуда ее (бумажку) не девали, а просто отказались от
    > оформления заказа. Передумали.

    Запросто
    но! для аналитики, очень к стати былобы ежелиб знать от чего отказались и кто
    и когда ;)
    согласен??
    и надо показать пользователю где искать
    не будет он же глазками 40тыс. записей пробегать
  • Anatoly Podgoretsky © (27.04.09 11:53) [9]
    > ford  (27.04.2009 11:11:08)  [8]

    Информаци о когда и кто нет
 
Конференция "Базы" » список несуществующих записей
Есть новые Нет новых   [134473   +33][b:0][p:0]