- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
ALTER PROCEDURE Estimate @Goods_ID int ,@Workshop_ID int AS
SELECT 9, null, null, 'Арматура',null, null , null, null
Union
SELECT 8, dbo.Charges.FK_TypeCh, dbo.Charges.ID, ' '+dbo.Charges.NAME, dbo.Charge_Price.KBO,
dbo.Charges.Cost, Round(dbo.Charges.Cost*dbo.Charge_Price.KBO,1),
Round( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume,1)
FROM dbo.Charge_Price INNER JOIN
dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID
WHERE (dbo.Charge_Price.FK_Workshop = 6) AND (dbo.Charge_Price.FK_Goods = @Goods_ID)
Union
SELECT 7, null, null,' Всего по арматуре', null, null,Round( SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO) ,1)as Сумма,
Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume),1)
FROM dbo.Charge_Price INNER JOIN
dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID
WHERE (dbo.Charge_Price.FK_Workshop = 6) AND (dbo.Charge_Price.FK_Goods = @Goods_ID)
Union
/*
Ещё мурнадцать запросов с объединением
*/
UNION
SELECT -3, null, null,' Полная себестоимость', null, null, Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO)*1.05,1) as Сумма,
Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume)*1.05,1)
FROM dbo.Charge_Price INNER JOIN
dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID
WHERE ( (dbo.Charge_Price.FK_Workshop = @Workshop_ID) OR (dbo.Charge_Price.FK_Workshop = 6) OR
(dbo.Charge_Price.FK_Workshop = 7) )AND (dbo.Charge_Price.FK_Goods = @Goods_ID)
UNION
SELECT -4, null, null,' Плановые накопления', null, null, Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO)*0.1575,1) as Сумма,
Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume)*0,1575,1)
FROM dbo.Charge_Price INNER JOIN
dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID
WHERE ( (dbo.Charge_Price.FK_Workshop = @Workshop_ID) OR (dbo.Charge_Price.FK_Workshop = 6) OR
(dbo.Charge_Price.FK_Workshop = 7) )AND (dbo.Charge_Price.FK_Goods = @Goods_ID)
UNION
SELECT -5, null, null,' Цена оптовая', null, null, Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO)*1.2075,1) as Сумма,
Round(SUM( dbo.Charges.Cost*dbo.Charge_Price.KBO/ dbo.Goods.volume)*1,2075,1)
FROM dbo.Charge_Price INNER JOIN
dbo.Charges ON dbo.Charge_Price.FK_Charge = dbo.Charges.ID INNER JOIN
dbo.Workshop ON dbo.Charge_Price.FK_Workshop = dbo.Workshop.ID INNER JOIN
dbo.Goods ON dbo.Charge_Price.FK_Goods= dbo.Goods.ID
WHERE ( (dbo.Charge_Price.FK_Workshop = @Workshop_ID) OR (dbo.Charge_Price.FK_Workshop = 6) OR
(dbo.Charge_Price.FK_Workshop = 7) )AND (dbo.Charge_Price.FK_Goods = @Goods_ID)
Order by 1 desc, 2, 3
Govnocoder#0xFF 12.04.2011 09:55 # 0
Доставило.
Lure Of Chaos 12.04.2011 13:21 # +1
записал, пригодится
Dummy00001 12.04.2011 15:08 # +6
Lure Of Chaos 12.04.2011 20:03 # 0
пизднадцать
dens 13.04.2011 07:38 # 0
Dummy00001 12.04.2011 15:18 # 0
если осмысленное нечто писать, применять правильный дизайн, то потом что бы что-то добавить или изменить нужно пропорциональное время для редизайна. часто вставить больше памяти в сервак намного дешевле, что бы все тупые запросы (как например сверху) работали из памяти.
с точки зрения прикладной области, говно слабое.
Lure Of Chaos 12.04.2011 15:45 # +1
Dummy00001 12.04.2011 16:02 # +1
а то что это другим не понятно... так это как раз лучше! консультанта хер поменяешь!!
ну вообщем, суровые реалии ДБ консультантов. лучше б не хаили - а учились бы, опыта набирались - как быть незаменимыми сотрудниками. ;)
ЗЫ ну в данном конкретном случае то как раз все тривиально и понятно. магические числа скорее всего имеют смысл только в той конкретной фирме для которой это щасцьце делалось. да и как математик, я не имею привычки вникать в константы :)