- 1
- 2
- 3
- 4
- 5
- 6
- 7
select distinct idsclad
from impRemainder
where idsclad not in (
select distinct idsclad
from impRemainder
where idmodel = $idmodel
)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−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'
−151.7
SELECT
CASE WHEN Subtask.ParentTask_ID = 1
THEN 0 ELSE CASE WHEN
(
SELECT SUM([Percent]) AS SumOfPercent
FROM Reports GROUP BY Zadanie_ID
HAVING (Zadanie_ID = SubTask.SubTask_ID)) IS NULL
THEN 0 ELSE (SELECT SUM([Percent]) AS SumOfPercent
FROM Reports GROUP BY Zadanie_ID
HAVING (Zadanie_ID = SubTask.SubTask_ID)
) END
END
AS SumOfPercent,
CASE WHEN Subtask.isContinued <> 1
THEN ((persons_1.Baza / 0.25) * (
CASE WHEN Subtask.dateEnding IS NULL
THEN CAST(SubTask.SubTask_EndDate - DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) AS integer)
ELSE CAST(SubTask.SubTask_EndDate - SubTask.DateEnding AS integer)
END -
DATEDIFF(ww, CASE WHEN Subtask.dateending IS NOT NULL THEN Subtask.dateending ELSE getdate() END,
SubTask.SubTask_EndDate) * 2) / 8 * CAST( Priority.Priority_Name AS numeric) / 1000)
ELSE CASE WHEN ((persons_1.Baza / 0.25)* (CASE WHEN Subtask.dateEnding IS NULL THEN
CAST(SubTask.SubTask_EndDate - DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) AS integer)
ELSE CAST(SubTask.SubTask_EndDate - SubTask.DateEnding AS integer)END -
DATEDIFF(ww, CASE WHEN Subtask.dateending IS NOT NULL THEN Subtask.dateending ELSE getdate() END,
SubTask.SubTask_EndDate) * 2)/ 8 * CAST( Priority.Priority_Name AS numeric)/ 1000) > 0 THEN 0
ELSE (persons_1.Baza / 0.25) * (CASE WHEN Subtask.dateEnding IS NULL
THEN CAST(SubTask.SubTask_EndDate - DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) AS integer)
ELSE CAST(SubTask.SubTask_EndDate - SubTask.DateEnding AS integer) END -
DATEDIFF(ww, CASE WHEN Subtask.dateending IS NOT NULL THEN Subtask.dateending ELSE getdate() END,
SubTask.SubTask_EndDate) * 2) / 8 * CAST( Priority.Priority_Name AS numeric) / 1000 END END AS timebonus,
CASE WHEN Subtask.isContinued <> 1 THEN (CASE WHEN (CASE WHEN SubTask.executed = 0
THEN CAST(Subtask.Subtask_EndDate - DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) AS int)
ELSE CAST(Subtask.Subtask_EndDate - Subtask.DateEnding AS int) END >= 0)
THEN (0.40 * (persons_1.Baza * CASE WHEN
(SELECT SUM([Hours]) AS sumHours FROM Reports where (isreal=1) or (isReal=null) GROUP BY Zadanie_ID
HAVING (Zadanie_ID = Subtask.Subtask_ID)) IS NULL THEN 0 ELSE
(SELECT SUM([Hours]) AS sumHours FROM Reports where (isreal=1) or (isReal=null) GROUP BY Zadanie_ID
HAVING (Zadanie_ID = Subtask.Subtask_ID)) END))
* (CAST( Priority.Priority_Name AS numeric) / 1000) ELSE 0 END) ELSE 0 END AS PriorityBonus
...
Я знаю, это трудно понять, но это алгоритм расчета правду о Жизни, Вселенной и Всего Такого. Это SQL выполняется на каждом Login в систему.
−154.7
WITH days(num, aday) AS
(
SELECT 1 AS num, 1 AS aday
UNION ALL
SELECT num, aday+1 AS aday FROM days
WHERE days.[aday] < DAY( DATEADD(DAY, -DAY(@date), DATEADD(MONTH, 1 , @date)))
)
SELECT SUM(day1) AS d1, SUM(day2) AS d2, SUM(day3) AS d3, SUM(day4) AS d4, SUM(day5) AS d5, SUM(day6) AS d6, SUM(day7) AS d7, SUM(day8) AS d8,
SUM(day9) AS d9, SUM(day10) AS d10, SUM(day11) AS d11, SUM(day12) AS d12, SUM(day13) AS d13, SUM(day14) AS d14, SUM(day15) AS d15,
SUM(day16) AS d16, SUM(day17) AS d17, SUM(day18) AS d18, SUM(day19) AS d19, SUM(day20) AS d20, SUM(day21) AS d21, SUM(day22) AS d22,
SUM(day23) AS d23, SUM(day24) AS d24, SUM(day25) AS d25, SUM(day26) AS d26, SUM(day27) AS d27, SUM(day28) AS d28, SUM(day29) AS d29,
SUM(day30) AS d30, SUM(day31) AS d31
FROM (SELECT CASE aday WHEN 1 THEN 1 ELSE 0 END AS day1, CASE aday WHEN 2 THEN 2 ELSE 0 END AS day2,
CASE aday WHEN 3 THEN 3 ELSE 0 END AS day3, CASE aday WHEN 4 THEN 4 ELSE 0 END AS day4,
CASE aday WHEN 5 THEN 5 ELSE 0 END AS day5, CASE aday WHEN 6 THEN 6 ELSE 0 END AS day6,
CASE aday WHEN 7 THEN 7 ELSE 0 END AS day7, CASE aday WHEN 8 THEN 8 ELSE 0 END AS day8,
CASE aday WHEN 9 THEN 9 ELSE 0 END AS day9, CASE aday WHEN 10 THEN 10 ELSE 0 END AS day10,
CASE aday WHEN 11 THEN 11 ELSE 0 END AS day11, CASE aday WHEN 12 THEN 12 ELSE 0 END AS day12,
CASE aday WHEN 13 THEN 13 ELSE 0 END AS day13, CASE aday WHEN 14 THEN 14 ELSE 0 END AS day14,
CASE aday WHEN 15 THEN 15 ELSE 0 END AS day15, CASE aday WHEN 16 THEN 16 ELSE 0 END AS day16,
CASE aday WHEN 17 THEN 17 ELSE 0 END AS day17, CASE aday WHEN 18 THEN 18 ELSE 0 END AS day18,
CASE aday WHEN 19 THEN 19 ELSE 0 END AS day19, CASE aday WHEN 20 THEN 20 ELSE 0 END AS day20,
CASE aday WHEN 21 THEN 21 ELSE 0 END AS day21, CASE aday WHEN 22 THEN 22 ELSE 0 END AS day22,
CASE aday WHEN 23 THEN 23 ELSE 0 END AS day23, CASE aday WHEN 24 THEN 24 ELSE 0 END AS day24,
CASE aday WHEN 25 THEN 25 ELSE 0 END AS day25, CASE aday WHEN 26 THEN 26 ELSE 0 END AS day26,
CASE aday WHEN 27 THEN 27 ELSE 0 END AS day27, CASE aday WHEN 28 THEN 28 ELSE 0 END AS day28,
CASE aday WHEN 29 THEN 29 ELSE 0 END AS day29, CASE aday WHEN 30 THEN 30 ELSE 0 END AS day30,
CASE aday WHEN 31 THEN 31 ELSE 0 END AS day31
FROM days) AS col
Думаю в комментариях не нуждается T_T.