Да! Нет границ разуму!
Я сделал невозможное!
Я написал на Transact-SQL логику выдачи сдачи для автомата торговли шоколадками!
Путь к зачету по SQL открыт!
Задание, сформулированное через задницу, подходит к концу!
Отныне сервера баз данных не будут расчитывать сдачу для автоматов! Все кончено!
Надеюсь никогда не будет подобных заданий, так не сбалансированных по задаче и предложенным для ее реализации средствам!
Только посмотрите какой изврат:
USE [TradeMachine]
GO
/****** Object: StoredProcedure [dbo].[give_change] Script Date: 12/13/2007 12:26:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Dmitry A. Grechka
-- Create date:
-- Description:
-- =============================================
ALTER PROCEDURE [dbo].[give_change]
@sum int = 0
AS
BEGIN
SET NOCOUNT ON;
create table #tmp_table (value int);
declare @tmp_sum int,@curr_value int,@ok bit,@counter int;
set @ok =0;
BEGIN TRANSACTION
declare values_cursor cursor for
select value from LocalCash order by value desc;
open values_cursor;
set @tmp_sum=0;
fetch next from values_cursor into @curr_value;
while @@FETCH_STATUS =0
begin
--print 'Насчитываем купюры '+convert(nvarchar,@curr_value);
set @counter=0;
while (@tmp_sum < @sum) and (@counter<(select quantity from LocalCash where value=@curr_value))
begin
set @tmp_sum= @tmp_sum + @curr_value;
set @counter= @counter +1;
insert into #tmp_table values (@curr_value);
-- print 'Взяли купюр '+convert(nvarchar,@counter)+'; Нужно '+convert(nvarchar,@sum)+'; сейчас имеем '+convert(nvarchar,@tmp_sum);
end
if (@tmp_sum = @sum)
begin
-- print 'КОМБИНАЦИЯ НАЙДЕНА!'
COMMIT TRANSACTION
select value 'Вам выданы купюры:' from #tmp_table order by value desc;
set @ok=1;
break;
end
else
begin
-- print 'Переборали... Откат к более мелкой купюре...';
set @tmp_sum = @tmp_sum-@curr_value;
delete top(1) from #tmp_table where value=@curr_value;
--set @counter
end
fetch next from values_cursor into @curr_value;
end
close values_cursor;
deallocate values_cursor;
drop table #tmp_table;
if @ok = 0
begin
raiserror ('Невозможно расчитать комбинацию купюр для выдачи!',2,0);
ROLLBACK TRANSACTION
end
END
Вам это будет интересно!
Последние новости
Слово
Назови человека свиньей, и он захрюкает. Пословица Проживая данную нам жизнь, мы все время находимся в гуще энергий, как положительных, так и отрицательных. По этическим нормам слово обладает определенной силой, следовательно, когда мы клевещем на человека, судим, обзываем, мы «де...Читать далее »
ЭГРЕГОР
Энергия эгрегора – квантовая структура, которая сформирована мыслями, знаниями и чувствами всего человечества – бывшего, настоящего и будущего. Эгрегор – это квантово лептонная скоррелированная структура, рожденная похожими мы...Читать далее »
Как открыть свои чакры
Открытие чакр увеличивает поток энергии в теле и вокруг него и, следовательно, улучшает наше физическое, ментальное и эмоциональное здоровье. Представьте себе каждую чакру по очереди. Они вращаются и становятся больше в размере. Начинайте с 1 – й чакры (пусть они вращаются в любую сторону, обычно они вращаются в разные). В то же ...Читать далее »
Смерть или новая жизнь
Из разговора двух зародышей в утробе матери: – Как ты думаешь, есть ли жизнь после родов? – Не знаю, оттуда еще никто не возвращался… Сравнительно недавно появились сенсационные сообщения доктора Раймонда А. Моуди о том, что ученые зарегистрировали фа...Читать далее »
Чакры
Чакры являются основными энергетическими органами биополя. Они контролируют нашу деятельность во внешнем мире, а каждая из чакр несет ответственность за определенную сферу деятельности. Основное предназначение их заключается в том, что они несут ответственность за поддержание энергообмена живого организма с окружающей средой через специальные каналы связи. Таким образом, при нарушении процесса энергообмена у нас возникают болезни и проблемы...Читать далее »
Три колонны космоса
Показания: нарушение обменных процессов, снижение иммунитета, обновление сил. Методика исполнения. Средний и сердечный пальцы правой руки кладут на аналогичные пальцы левой руки. Мизинец левой руки кладут возле основания тыльной поверхности среднего и безымянного пальцев правой руки, затем все фиксируется мизинцем правой руки. Кон...Читать далее »
Заключение
Лучше зажечь свечу, чем проклинать сгущающуюся тьму. Дзенское изречение Вот и написана книга. Мне хочется верить, что вам она обязательно поможет в познании себя, утверждении своего «Я», определении своего места во Вселенной. На ум приходит китайская пословица: «Если не менять направление, мы наверняка достигнем того, к чему идем». А мы идем к Свету, Добру и Счастью. Мы ...Читать далее »
