|
помогите с запросом - Выбрать тип цены с минимальной ценой
#36839419
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
|
|
|
сам запрос
1. 2. 3. 4. 5. 6. 7. 8. 9. 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. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151.
ВЫБРАТЬ
ЦеныБазовые.ТипЦен КАК ТипЦен,
ВЫБОР
КОГДА &ВВалютеОтчета = ЛОЖЬ
ТОГДА ВЫБОР
КОГДА ЦеныБазовые.ТипЦен.Рассчитывается
ТОГДА ЦеныБазовые.ТипЦен.ВалютаЦены
ИНАЧЕ МИНИМУМ(ВЫБОР
КОГДА ЦеныБазовые.ТипЦен.Рассчитывается
ТОГДА ВЫБОР
КОГДА ЦеныРасчетные.Валюта ЕСТЬ NULL
ТОГДА ЦеныБазовые.Валюта
ИНАЧЕ ВЫБОР
КОГДА ЦеныБазовые.СпособРасчетаЦены = &СпособНаценка
ТОГДА ЦеныРасчетные.Валюта
ИНАЧЕ ЦеныБазовые.ВалютаДиапазона
КОНЕЦ
КОНЕЦ
ИНАЧЕ ЦеныБазовые.Валюта
КОНЕЦ)
КОНЕЦ
ИНАЧЕ &ВалютаОтчета
КОНЕЦ КАК ВалютаПрайса,
ЦеныБазовые.ЦеноваяГруппа КАК ЦеноваяГруппа,
ЦеныБазовые.Номенклатура КАК Номенклатура,
ЦеныБазовые.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
МИНИМУМ(ВЫБОР
КОГДА ЦеныБазовые.ТипЦен.Рассчитывается
ТОГДА ЦеныРасчетные.ЕдиницаИзмерения
ИНАЧЕ ЦеныБазовые.ЕдиницаИзмерения
КОНЕЦ) КАК ЕдиницаИзмерения,
МИНИМУМ(ВЫБОР
КОГДА ЦеныБазовые.ТипЦен.Рассчитывается
ТОГДА ВЫБОР
КОГДА ЦеныРасчетные.Валюта ЕСТЬ NULL
ТОГДА ЦеныБазовые.Валюта
ИНАЧЕ ВЫБОР
КОГДА ЦеныБазовые.СпособРасчетаЦены = &СпособНаценка
ТОГДА ЦеныРасчетные.Валюта
ИНАЧЕ ЦеныБазовые.ВалютаДиапазона
КОНЕЦ
КОНЕЦ
ИНАЧЕ ЦеныБазовые.Валюта
КОНЕЦ) КАК Валюта,
МИНИМУМ(ВЫБОР
КОГДА ЦеныБазовые.ТипЦен.Рассчитывается
ТОГДА ВЫБОР
КОГДА ЦеныБазовые.СпособРасчетаЦены = &СпособНаценка
ТОГДА ВЫБОР
КОГДА ЦеныРасчетные.Цена ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ЦеныРасчетные.Цена * ( 1 + ЦеныБазовые.ПроцентСкидкиНаценки / 100 )
КОНЕЦ
ИНАЧЕ ЦеныБазовые.ЦенаДиапазона
КОНЕЦ
ИНАЧЕ ЦеныБазовые.Цена
КОНЕЦ) КАК Цена
ИЗ
(ВЫБРАТЬ
СписокНоменклатуры.Номенклатура КАК Номенклатура,
СписокНоменклатуры.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
СписокНоменклатуры.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
СпрТипЦен.ТипЦен КАК ТипЦен,
ЦеныНоменклатуры.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0 ) КАК Цена,
ВЫБОР
КОГДА ЦеныНоменклатуры.Номенклатура ЕСТЬ NULL
ТОГДА СпрТипЦен.ПроцентСкидкиНаценки
ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатуры.ПроцентСкидкиНаценки, ЦеныНоменклатуры.ТипЦен.ПроцентСкидкиНаценки)
КОНЕЦ КАК ПроцентСкидкиНаценки,
ВЫБОР
КОГДА ЦеныНоменклатуры.Номенклатура ЕСТЬ NULL
ТОГДА СпрТипЦен.СпособРасчетаЦены
ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатуры.СпособРасчетаЦены, ЦеныНоменклатуры.ТипЦен.СпособРасчетаЦены)
КОНЕЦ КАК СпособРасчетаЦены,
ЕСТЬNULL(ШкалыДиапазонов.Цена, 0 ) КАК ЦенаДиапазона,
ЕСТЬNULL(ШкалыДиапазонов.ВерхняяГраница, 0 ) КАК ВерхняяГраница,
ЕСТЬNULL(ЦеныНоменклатуры.Валюта, СпрТипЦен.Валюта) КАК Валюта,
ШкалыДиапазонов.Валюта КАК ВалютаДиапазона
ИЗ
(ВЫБРАТЬ
СпрХарактеристики.Владелец КАК Номенклатура,
СпрХарактеристики.Ссылка КАК ХарактеристикаНоменклатуры
ИЗ
Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики
{ГДЕ
СпрХарактеристики.Владелец.* КАК Номенклатура,
СпрХарактеристики.Владелец.ЦеноваяГруппа.* КАК ЦеноваяГруппа}
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
СпрНоменклатура.Ссылка,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
{ГДЕ
СпрНоменклатура.Ссылка.* КАК Номенклатура,
СпрНоменклатура.Ссылка.ЦеноваяГруппа.* КАК ЦеноваяГруппа}) КАК СписокНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СправочникЦен.Ссылка КАК ТипЦен,
СправочникЦен.ВалютаЦены КАК Валюта,
СправочникЦен.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
СправочникЦен.СпособРасчетаЦены КАК СпособРасчетаЦены
ИЗ
Справочник.ТипыЦенНоменклатуры КАК СправочникЦен
{ГДЕ
СправочникЦен.Ссылка.* КАК ТипЦен}) КАК СпрТипЦен
ПО ((НЕ СписокНоменклатуры.Номенклатура.ЭтоГруппа))
И ((НЕ СписокНоменклатуры.Номенклатура.Набор))
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, {(Номенклатура).* КАК Номенклатура, (Номенклатура.ЦеноваяГруппа).* КАК ЦеноваяГруппа, (ТипЦен).* КАК ТипЦен}) КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатуры.Номенклатура = СписокНоменклатуры.Номенклатура)
И (ЦеныНоменклатуры.ТипЦен = СпрТипЦен.ТипЦен)
И (ЦеныНоменклатуры.ХарактеристикаНоменклатуры = СписокНоменклатуры.ХарактеристикаНоменклатуры)
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ДиапазоныЦен.ТипЦен КАК ТипЦен,
ДиапазоныЦен.ВерхняяГраница КАК ВерхняяГраница,
ДиапазоныЦен.Цена КАК Цена,
ДиапазоныЦен.Валюта КАК Валюта,
ДиапазоныЦен.Период КАК Период
ИЗ
РегистрСведений.ДиапазоныЦенДляНаценки.СрезПоследних(&Дата, {(ТипЦен).* КАК ТипЦен}) КАК ДиапазоныЦен
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ДиапазоныЦенДляНаценкиСрезПоследних.ТипЦен КАК ТипЦен,
МАКСИМУМ(ДиапазоныЦенДляНаценкиСрезПоследних.Период) КАК Период
ИЗ
РегистрСведений.ДиапазоныЦенДляНаценки.СрезПоследних(&Дата, {(ТипЦен).* КАК ТипЦен}) КАК ДиапазоныЦенДляНаценкиСрезПоследних
СГРУППИРОВАТЬ ПО
ДиапазоныЦенДляНаценкиСрезПоследних.ТипЦен) КАК МаксДиапазоныЦен
ПО ДиапазоныЦен.ТипЦен = МаксДиапазоныЦен.ТипЦен
И ДиапазоныЦен.Период = МаксДиапазоныЦен.Период) КАК ШкалыДиапазонов
ПО (ШкалыДиапазонов.ТипЦен = СпрТипЦен.ТипЦен)
И (СпрТипЦен.ТипЦен.Рассчитывается)) КАК ЦеныБазовые
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, {(Номенклатура).* КАК Номенклатура, (Номенклатура.ЦеноваяГруппа).* КАК ЦеноваяГруппа}) КАК ЦеныРасчетные
ПО ЦеныБазовые.Номенклатура = ЦеныРасчетные.Номенклатура
И ЦеныБазовые.ХарактеристикаНоменклатуры = ЦеныРасчетные.ХарактеристикаНоменклатуры
И ЦеныБазовые.ТипЦен.БазовыйТипЦен = ЦеныРасчетные.ТипЦен
ГДЕ
((НЕ ЦеныБазовые.ТипЦен.Рассчитывается)
ИЛИ ЦеныБазовые.СпособРасчетаЦены <> &СпособДиапазон
ИЛИ ЦеныБазовые.СпособРасчетаЦены = &СпособДиапазон
И (ЦеныРасчетные.Цена МЕЖДУ 0 . 000001 И ЦеныБазовые.ВерхняяГраница - 0 . 000001 ))
СГРУППИРОВАТЬ ПО
ЦеныБазовые.ТипЦен,
ЦеныБазовые.ЦеноваяГруппа,
ЦеныБазовые.Номенклатура,
ЦеныБазовые.ХарактеристикаНоменклатуры,
ЦеныБазовые.ТипЦен.Рассчитывается,
ЦеныБазовые.ТипЦен.ВалютаЦены
|
|
|