- 1
SELECT ((SELECT COUNT(*) FROM `books` WHERE `author` = '?') + (SELECT COUNT(*) FROM `magazins` WHERE `author` = '?')));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−180.2
SELECT ((SELECT COUNT(*) FROM `books` WHERE `author` = '?') + (SELECT COUNT(*) FROM `magazins` WHERE `author` = '?')));
не многовато ли селектов?:))
вместо '?' пхпшный код ставит значение.
−862
CREATE TABLE IF NOT EXISTS `tbl_game` (
`game_id` bigint(20) NOT NULL AUTO_INCREMENT,
`game_name` varchar(150) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci NOT NULL DEFAULT '',
`upload_date` bigint(20) NOT NULL DEFAULT '0',
`magazine_id` bigint(20) NOT NULL DEFAULT '0',
`producer_id` int(11) NOT NULL DEFAULT '0',
`dir` varchar(60) NOT NULL DEFAULT '',
PRIMARY KEY (`game_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=538 ;
Вот наткнулся на такую вот говенную таблицу.
Для некоторых случаев возможностей utf-8 видно не хватило, и пришлось использовать "продвинутую" cp1251
−866.8
CREATE procedure dbo.BASE_W_ORDER_NEYAVKAM
@date_in as nvarchar(10),
@id_users as int
as
declare @date as datetime
set @date = convert(datetime, @date_in, 104)
--set @date = convert(datetime, cast(@date_in as datetime), 104)
select* from(
select
p.[ID] as [ID],
p.TABEL_NUM as TABEL_NUM,
p.FAMILY as FAMILY,
p.[NAME] as NAME,
p.SECNAME as SECNAME,
p.ID_DEPT as ID_DEPT,
d.[NAME] as DEPT,
p.POSITION as POSITION,
--dbo.GetCmena(p.ID_GRAPH, convert(nvarchar(10), getdate(), 104)) as SID,
s.[id] as SID,
s.[NAME] as SMENA,
s.START_SM as START_SM,
s.END_SM as END_SM,
s.START_DIN as START_DIN,
s.END_DIN as END_DIN,
p.PHOTO as PHOTO,
-- формируем отчет для тех
-- если приказ не назначен
case when not exists(select*from base_codes_s cc where cc.[id] = p.id_codes and cc.status like '0_1_____') then
-- у кого график назначен
case when (isnull(p.id_graph,0) = 0) then 1
-- у кого код пропуска присвоен
when (isnull(p.id_Codes,0) = 0) then 1
-- пропуск не имеет статус администратора
when exists(select*from base_codes_s cc where cc.[id] = p.id_codes and cc.status like '0_1_____') then 1
-- пропуск не просрочен
when (@date < isnull(c.date_in, @date)
or @date > isnull(c.date_out, @date)) then 1
-- Сотрудник в отпуске
when exists(select*from TABL_OTPUSK o where o.ID_PERSONAL = p.id_codes and convert(nvarchar(10), o.[DATE], 104) = convert(nvarchar(10), @date, 104)) then 1
-- празднечный день
when exists(select*from TABL_HOLIDAY_S hol where convert(nvarchar(10), hol.[DATE], 104) = convert(nvarchar(10), @date, 104)) then 1
else 0 end
else
-- делаем расчеты в соответствии с приказом
-- у кого график назначен
case when (isnull(p.id_graph,0) = 0) then 1
-- у кого код пропуска присвоен
when (isnull(p.id_Codes,0) = 0) then 1
-- пропуск не имеет статус администратора
when exists(select*from base_codes_s cc where cc.[id] = p.id_codes and cc.status like '0_1_____') then 1
-- пропуск не просрочен
when (@date < isnull(c.date_in, @date)
or @date > isnull(c.date_out, @date)) then 1
-- Сотрудник в отпуске
when exists(select*from TABL_OTPUSK o where o.ID_PERSONAL = p.id_codes and convert(nvarchar(10), o.[DATE], 104) = convert(nvarchar(10), @date, 104)) then 1
-- празднечный день
when exists(select*from TABL_HOLIDAY_S hol where convert(nvarchar(10), hol.[DATE], 104) = convert(nvarchar(10), @date, 104)) then 1
else 0 end end as XREN
from base_pesonal_S p
-- присоединяем пропуска
left join base_codes_s c on
p.id_codes = c.[id]
-- присоединяем отделы
left join base_dept d on
p.id_dept = d.[id]
-- Узнаем смену назначенную на день отчета для графика который назначен сотруднику
LEFT OUTER join BASE_SMENA_S s ON
s.[id] = (select top 1 ID_SM
from
BASE_GRAPH as g
inner join BASE_GRAPH_NAME_S as gn on gn.[id] = g.ID_GRAPH_NAME
inner join BASE_SMENA as s on s.[id] = g.id_SM
inner join (select BASE_GRAPH.ID_GRAPH_NAME, count(*) cntsmen from BASE_GRAPH group by BASE_GRAPH.ID_GRAPH_NAME) sm
on (datediff(dd, gn.date_in, convert(datetime, @date, 104)) % sm.cntsmen) + 1 = g.[num] and g.ID_GRAPH_NAME = sm.ID_GRAPH_NAME
where g.id_graph_name = p.ID_GRAPH)
) as t1
-- смена не должна быть выходной
where XREN <> 1
and SID <> 1
and not exists(select top 1 * from base_events e where id_p = [id]
and convert(nvarchar(10), e.[TIME], 104) = convert(nvarchar(10), @date, 104)
and (ascii(e.CODE) = ascii('I')
or ascii(e.CODE) = ascii('O')
)
)
and id_dept in(select id_dept from BASE_ACCEESS where id_users = @id_users) -- отчет только для интерисующих на отделов
GO
−857
SELECT * FROM [dbo].[Publications]
where [UserId] not like 'NULL'
UserId, естественно, int
−873.6
declare @FromDate datetime, @ToDate datetime
set @FromDate = convert(char(10),dateadd(dd,-1,getdate()),20)
−151.8
CREATE TABLE IF NOT EXISTS `upmenu_block` (
`id_foto_b` int(5) NOT NULL auto_increment,
`id_sec` int(5) NOT NULL,
`f_b1` varchar(100) NOT NULL,
`f_b2` varchar(100) NOT NULL,
`f_b3` varchar(100) NOT NULL,
`f_b4` varchar(100) NOT NULL,
`f_o1` varchar(200) NOT NULL,
`f_o2` varchar(200) NOT NULL,
`f_o3` varchar(200) NOT NULL,
`f_o4` varchar(200) NOT NULL
PRIMARY KEY (`id_foto_b`)
)
В зависимости от таба (1-4), в котором будет показана фотка, ее название и имя файла записываются в поля f_bN, f_oN.
−157.2
Select @clientMoney_DayEnd = coalesce([Money], 0.0)
FROM dbo.AccountOperation
where
OperationDateTime = (
select max(OperationDateTime)
from dbo.AccountOperation
where
cast(year(OperationDateTime) as varchar(4)) +
right('0' + cast(month(OperationDateTime) as varchar(2)), 2) +
right('0' + cast(day(OperationDateTime) as varchar(2)), 2) <=
(
select cast(datepart(year, max(QuoteDateTime)) as varchar(4)) +
right('0' + cast(datepart(month, max(QuoteDateTime)) as varchar(2)), 2) +
right('0' + cast(datepart(day, max(QuoteDateTime)) as varchar(2)), 2) + ' 23:59'
from CloseQuote
where
QuoteDateTime < dateadd(day, 1, @currDate)
) and
[Money] is not null and
ClientID = @clientID
) and
[Money] is not null and
ClientID = @clientID
order by ID desc
Разбить datetime на год, месяц, день. Отдельно каждое начение привести к чару, собрать из них строку даты... Ну и посравнивать ее с такой же шедеврашьной строкой...
А да... и все это в мега-курсоре для каждой даты...
Другой вариант для данной задачи, хотябы cast(OperationDateTime as date) cast(QuoteDateTime as date), неприемлем категорически:):):):):)::)
−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
)
Получить все склады, на которых нет этого товара