- 1
- 2
- 3
select date '1582-10-31' - date '1582-10-01' + 1 "Дней в октябре 1582г" from dual;
Выдаёт число 21
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−859.6
select date '1582-10-31' - date '1582-10-01' + 1 "Дней в октябре 1582г" from dual;
Выдаёт число 21
Даже и не знаю как это назвать. Вроде все правильно, но как-то заковыристо.
−864.4
FOREACH SELECT n.prod_code INTO _prod_code
FROM tov_prod_link_g l, nsi_resource n
WHERE l.prod_code = n.prod_code
AND l.gr_id = _gr_id
ORDER BY n.res_name
LET _nn_por = _nn_por +5;
UPDATE tov_prod_nn_por SET nn_por =_nn_por WHERE prod_code = _prod_code;
))) такие у нас перлы выдают) вместо одного апдейта нахерачить процедуру, для некоторых это нормально)
−145
select distinct idsclad
from impRemainder
where idsclad not in (
select distinct idsclad
from impRemainder
where idmodel = $idmodel
)
Получить все склады, на которых нет этого товара
−132.6
SELECT [IdPart],
[num],
NameRus AS PartName,
Rests,
Income,
Defect,
Rests +ISNULL([1],0) [1],
Rests +ISNULL([1],0)+ISNULL([2],0) [2],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0) [3],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0) [4],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0) [5],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)[6],
...
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)[11],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)[12],
...
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)[22],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)[23],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)[24],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)[25],
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)+ ISNULL([26],0)[26],
...
Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)+ ISNULL([26],0)+ ISNULL([27],0)+ ISNULL([28],0)+ISNULL([29],0)+ISNULL([30],0)+ISNULL([31],0)[31]
, Rests+Income-Defect + ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ [15]+ [16]+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)+ ISNULL([26],0)+ISNULL([27],0)+ISNULL([28],0)+ISNULL([29],0)+ISNULL([30],0)+ISNULL([31],0) AS TotalExpence
FROM
(
.....
Типа нарастающий итог. Ну слов просто нет. ИМХО, это что-то из разряда использовать микроскоп для забивания гвоздей.
−144.2
SELECT
id, description_ru, description_en,
FLOOR(LENGTH(TRIM(description_ru))/2+0.5) AS descr_ru,
LENGTH(TRIM(description_en)) AS `descr_en`
FROM items
ORDER BY descr_ru desc;
получает id, русское описание, английское описание, а потом размеры описаний
и сортирует по размеру русского описания.
база в UTF-8, поэтому размеры описаний в символах решил посчитать вот таким говноспособом...
таблица >30 000 записей.
Говнодиверсант какой-то :)
−157.8
CREATE PROCEDURE "auot".uot_inv_procs2
(
NumFunc Integer, -- Номер функции :
-- 1 - Вставляет строку
-- 2 - Создает временную таблицу
-- 3 - Удаляет временную таблицу
-- 4 - Создает временную таблицу
-- 5 - Удаляет временную таблицу
-- 6 - Возвращает Dogovor.Dog_id
-- 7 - Создает TempTableInvoice
-- 8 - Создает TmpTabDeclInv
-- 9 - Создает TmpTabDeclSel
--10 - Заолняет TmpTabDeclSel
--11 - Добавляет в TmpTabVCSel
--12 - Обновляет информацию
n_Numb_inv NVarChar(10,0) DEFAULT NULL,
n_Date_inv Date DEFAULT NULL,
n_Code_exp Char(2) DEFAULT NULL,
n_Prod_code Char(3) DEFAULT NULL,
n_Code_Transport Char(1) DEFAULT NULL,
n_Code_Date_Cen Char(1) DEFAULT NULL,
n_Contract NVarChar(30,0) DEFAULT NULL,
n_DateContract Date DEFAULT NULL,
n_Weight Numeric(10,3) DEFAULT NULL,
n_Price Numeric(8,2) DEFAULT NULL,
n_Total Numeric(15,2) DEFAULT NULL,
n_Kod_val_id Integer DEFAULT NULL,
n_Date_konos Date DEFAULT NULL,
n_SHB_Signature Char(6) DEFAULT NULL,
n_Seller_Sign Char(6) DEFAULT NULL,
n_Date_prix Date DEFAULT NULL,
n_Date_move Date DEFAULT NULL,
n_SUM_CLS Numeric(15,2) DEFAULT NULL,
n_Consignee NVarChar(150,0) DEFAULT NULL,
n_Buyer NVarChar(150,0) DEFAULT NULL,
n_Pnt_departure NVarChar(150,0) DEFAULT NULL,
n_Destination NVarChar(150,0) DEFAULT NULL,
n_Steam_vessel NVarChar(50,0) DEFAULT NULL,
n_Delivery_terms NVarChar(18,0) DEFAULT NULL,
n_Status Char(1) DEFAULT 'N',
n_Dogovor_id Integer DEFAULT NULL,
n_Date_min Date DEFAULT NULL,
n_Date_max Date DEFAULT NULL,
n_Invoice_id Integer DEFAULT NULL,
n_Res_Code Char(8) DEFAULT NULL,
n_Date_Sale_Uved Date DEFAULT NULL,
n_Month Date DEFAULT NULL
)
RETURNING INTEGER;
DEFINE GLOBAL __current_user INTEGER DEFAULT NULL;
DEFINE GLOBAL err_sqlcode INTEGER DEFAULT 0;
DEFINE GLOBAL err_isamcode INTEGER DEFAULT 0;
DEFINE GLOBAL err_detail CHAR(80) DEFAULT '';
DEFINE _inv_id Integer;
DEFINE _Name_exp NVarChar(40,0);
DEFINE _Name_rus NVarChar(50,0);
DEFINE _Smlval Char(3);
DEFINE _rlw_id Integer;
DEFINE _weight_brutto Decimal(12,3);
DEFINE _Bes_inv Decimal(12,3);
DEFINE _Sum_inv Numeric(15,2);
DEFINE _Bes_free Decimal(12,3);
DEFINE _Sum_free Numeric(15,2);
DEFINE _Sum_Weight_Inv DECIMAL(12,3);
DEFINE _SHB_Name NVARCHAR(60,0);
DEFINE _dogovor NChar(15);
DEFINE _dlv_id Integer;
DEFINE _Decl_num Char(23);
DEFINE _Decl_date Date;
DEFINE _Buyer NVarChar(80);
DEFINE _Currency_rate Money(16,2);
DEFINE _CenaRus Money(16,2);
DEFINE _Prod_All NVarChar(93);
DEFINE _org_name NVarChar(80,0);
DEFINE _SumRUR Money(16,2);
DEFINE _SumKinef Money(16,2);
DEFINE _Delta Money(16,2);
DEFINE _Effect Money(16,2);
DEFINE _Dog_id Integer;
DEFINE _Res_code Char(8);
DEFINE _carriage_num NChar(18);
DEFINE _nom_nakl NChar(10);
DEFINE _Shpok_char Char(4);
DEFINE _Parent SmallInt;
DEFINE _Date_otgr DateTime YEAR TO SECOND;
IF NumFunc=2 THEN -- Создаем временную табл. SprInvByProd
CREATE TEMP TABLE SprInvByProd......
и так далее по каждому из 12 пунктов.....просто процедура на все случаи жизни..чувак реально попотел когда сие изобретал....
−863
CREATE PROCEDURE mix_kach1_spravka(
_date_time DATETIME YEAR TO MINUTE, -- дата
_param_rez_id integer -- признак
) RETURNING integer, -- туфта
decimal; -- туфта
define _date_r nchar(19);
define _wzliv decimal;
define _n_nn_rez nchar(4);
define _mass integer;
define _mass1 integer;
define _date_begin DATETIME YEAR TO MINUTE;
define _date_end DATETIME YEAR TO MINUTE;
define _count integer;
define _wzliv_beg INTEGER;
define _bes_pas DECIMAL;
define i int;
define _spr_id integer;
define _all_w decimal(7,1);
define _go_w decimal(7,1);
define _pr_w decimal(7,1);
define _proc_go decimal(4,1);
define _proc_pr decimal(4,1);
define _edatebegin Datetime year to minute;
define _w int;
define _m_go decimal;
define _m_pr decimal;
define test_date DATETIME YEAR TO MINUTE;
/*Опустим блок обработки ошибок*/
CREATE TEMP TABLE tmp_raschet1(
--spr_id SERIAL NOT NULL,
edate Datetime year to MINUTE, --27.08.2008 Лазарев Е.В.
w int,
all_w decimal(7,1),
go_w decimal(7,1),
pr_w decimal(7,1),
proc_go decimal(4,1),
proc_pr decimal(4,1)
) with no log;
let _m_go = 0;
let _m_pr = 0;
execute procedure get_mix_quality(_date_time,_param_rez_id) into _w, _all_w, _go_w, _pr_w, _proc_go, _proc_pr, _edatebegin;
insert into tmp_raschet1 (edate,w,all_w, go_w,pr_w,proc_go,proc_pr) values (_edatebegin,_w,_all_w, _go_w, _pr_w, _proc_go, _proc_pr);
END PROCEDURE;
Вот честно, что это и зачем такое нужно? Наверно выполнить процедуру и просто взять выходные данные не судьба.
А лишние переменные видимо на всякий случай.
P.S. Боже за что?!!!
−151
CREATE TEMP TABLE tmp_sale_exp (
id SERIAL NOT NULL,
dog_id integer,
shpok char(4),
is_komiss integer,
F2 nchar(80)
F3 nchar(3),
F4 date,
F5 char(3),
nakl_item_id integer,
F9 char(9),
F10 date,
act_qnt decimal(16,3),
F11 nchar(1),
F12 nvarchar(32),
decl_id integer,
F16 char(23),
F17 date,
F18 decimal(16,3),
F21 money(16,2),
F22 money(16,2),
ppd_decl_num char(23),
ppd_weight decimal(16,3),
ppd_summa money(16,2),
ppd_price money(16,2),
invoice_id integer,
F23 nvarchar(10),
F24 date,
F25 decimal(16,3),
smlval char(3),
nakl2inv decimal(16,3),
price money(16,2),
total money(16,2),
prod_code char(3) ,
res_name nvarchar(45),
F48 date,
F49 money(16,2),
ip_id integer
) WITH NO LOG;
вот недопрограммист создает временную таблицу, с очень ясными и понятными полями, он же думает что он вечный, и в его говнокоде потом никто разбираться не будет.
ммммммммммм....а какие интересные суммы, то decimal, то money, жалко но в этом конкретном примере нет еще и float, обычно они присутствуют все 3 типа и в одной таблице.....зачем???? я не знаю
−860.1
s :=
Replace(
Replace(
Replace(s,' ')
,',',ltrim(to_char(0,'D')))
,'.',ltrim(to_char(0,'D')));
Кодер думает, что так будет понятнее, что на что заменяется.
По-моему намного читабельнее было бы разбить это на 3 отдельных вызова Replace
−169
SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
type_table_of_name_tag_value ()
FROM DUAL
WHERE dummy = 'Z'