• Juick ? SQL prog Жуйк, а как бы такую задачу решал.
    Есть таблица: поля dt,f1,f2,f3,f4,f5
    Заполнена в случайном порядке, т.е. 12:00,NULL,NULL,3,NULL,NULL
    10:00,1,2,NULL,3,NULL,NULL
    09:00,2,2,NULL,4,4,NULL
    А в результате нужно "схлопнуть" все эти записи причем, за основу взять первую строку, потом если во второй есть поля не NULL, который в первой таблице NULL, мы их заполняем из второй строки, и.т.д. т.е. на выходе должна получиться строка
    12:00,1,2,3,4,NULL

    Я кроме как через Курсор или Recordset на клиенте не придумал. А вдруг?

Replies (4)

  • @Bchgroup, Поправочка, 2 и 3 строки читать
    10:00,1,2,3,NULL,NULL
    09:00,2,2,4,4,NULL
  • @Bchgroup, в relational databases нету первых или последних строк. Там наверное поле есть по которому отсортировать.
    Скажем, поле ID вначале есть, такое: 1,2,3,4,....100000

    К каждому полю concat делаешь вначале этот ключ, отпадженный до, скажем, восьми нулей, получается f1: 1 -> 00000001, а к наллу налл получится.

    Потом делаешь select max(f1),max(f2) или min, как надо.Потом 8 цифр отрезаешь.

    Такие дела.
  • @SannySanoff, Да, что первых и последних нету я в курсе. Иммел ввиду отсортированных по времени. Но проблема в том, что f1 мне нужен не max, а первое ne null значение, в порядке сортировки. т.е. если f1 по строкам null,2,3 max — мне вернет 3, а нужно 2.
  • @Bchgroup, первое не нулл значение будет иметь минимальный сорт-кей приклееный слева, стало быть под min() подпадёт. Читаем внимательно.