|
Как можно модифицировать запрос на модификацию ?
|
|||
---|---|---|---|
#18+
Запрос на модификацию данных отобранных из таблицы с помощью перекрестного запроса: /*Пояснения: Перед модификацией я проверяю изменилось ли значение, если да то проверяю, не является ли оно пустым, почему я проверяю неравно ли оно нулю, так как при выборке, я проверяю есть ли такая запись, если нет то в таблицу вывожу нуль, и так для каждого поля. */ /*1 строка*/DECLARE @Pdata char(8) , @Ksmen smallint SET @Pdata = 20000512 SET @Ksmen = '1' /* time */ if ( :OLD_time <> :time ) BEGIN update dbo.DATA5 set Time = :Time where Time =:OLD_Time and data=:OLD_data END /* 1 */ if ( :OLD_num_KA <> :num_KA) BEGIN if ( :OLD_num_KA <> '0' ) and ( :OLD_num_KA <> '') BEGIN update dbo.DATA5 set znach =:num_KA where kod_param = 1 and data = :OLD_data and time = :OLD_time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 1, :num_KA) END END /* 2 */ if ( :OLD_Clear_f_f <> :Clear_f_f ) BEGiN if ( :OLD_Clear_f_f <> '0' ) and ( :OLD_Clear_f_f <> '') BEGIN update dbo.DATA5 set znach =:Clear_f_f where kod_param = 2 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 2, :Clear_f_f) END END /* 3 */ if ( :OLD_Clear_obch <> :Clear_obch) BEGIN if ( :OLD_Clear_obch <> '0' ) or ( :OLD_Clear_obch <> '') BEGIN update dbo.DATA5 set znach =:Clear_obch where kod_param = 3 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 3, :Clear_f_f) END END /* 4 */ if ( :OLD_Clear_s_s <> :Clear_s_s) BEGIN if ( :OLD_Clear_s_s <> '0' ) or ( :OLD_Clear_s_s <> '') BEGIN update dbo.DATA5 set znach =:Clear_s_s where kod_param = 4 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 4, :Clear_s_s) END END /* 5 */ if ( :OLD_Ciklon_lev_f_f <> :Ciklon_lev_f_f ) BEGIN if ( :OLD_Ciklon_lev_f_f <> '0' ) or ( :OLD_Ciklon_lev_f_f <> '') BEGIN update dbo.DATA5 set znach =:Ciklon_lev_f_f where kod_param = 5 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 5, :Ciklon_lev_f_f) END END /* 6 */ if ( :OLD_Ciklon_lev_obch <> :Ciklon_lev_obch ) BEGIN if ( :OLD_Ciklon_lev_obch <> '0' ) or ( :OLD_Ciklon_lev_obch <> '') BEGIN update dbo.DATA5 set znach =:Ciklon_lev_obch where kod_param = 6 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 6, :Ciklon_lev_obch) END END /* 7 */ if ( :OLD_Ciklon_prav_f_f <> :Ciklon_prav_f_f) BEGIN if ( :OLD_Ciklon_prav_f_f <> '0' ) or ( :OLD_Ciklon_prav_f_f <> '') BEGIN update dbo.DATA5 set znach =:Ciklon_prav_f_f where kod_param = 7 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 7, :Ciklon_prav_f_f) END /* 8 */ if ( :OLD_Ciklon_prav_obch <> '0' ) or ( :OLD_Ciklon_prav_obch <> '') BEGIN update dbo.DATA5 set znach =:Ciklon_prav_obch where kod_param = 8 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 8, :Ciklon_prav_obch) END END /* 9 */ if ( :OLD_S_S <> :S_S) BEGIN if ( :OLD_S_S <> '0' ) or ( :OLD_S_S <> '') BEGIN update dbo.DATA5 set znach =:S_S where kod_param = 9 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 9, :S_S) END END /* 10 */ if ( :OLD_Proc_Prod <> :Proc_Prod) BEGIN if ( :OLD_Proc_Prod <> '0' ) or ( :OLD_Proc_Prod <> '') BEGIN update dbo.DATA5 set znach =:Proc_Prod where kod_param = 10 and data = :OLD_Data and time = :OLD_Time END ELSE BEGIN insert into dbo.DATA5 (Data, time, kod_smeni, kod_param, znach) values ( @Pdata , :Time, @Ksmen, 10, :Proc_Prod) END END /*последняя строка*/ P.S. Готов переписываться со всеми желающими ! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2000, 14:23 |
|
Как можно модифицировать запрос на модификацию ?
|
|||
---|---|---|---|
#18+
Нужно получить результат такой-же, как в перекрестном запросе на Access ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2001, 17:24 |
|
Как можно модифицировать запрос на модификацию ?
|
|||
---|---|---|---|
#18+
Честно говоря, не хватило терпения прочитать твой манускрипт до конца и вникнуть в то, что ты натворил. Просто отвечаю на вопрос в последней строке. Перекрестные запросы в T-SQL как в Access напрямую не реализуются. На сервере их аналог можно сделать, включая в запрос конструкции CASE (см. BOL). На клиенте можно решать аналогичные задачи с помощью ActiveX - компонентов или дельфишных пакетов вроде PivotTable и аналогичных. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2001, 21:00 |
|
|
start [/forum/topic.php?fid=46&msg=32000041&tid=1827341]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 408ms |
0 / 0 |