delit |
На мой взгляд, оно не интресно и не очень красиво. |
А-аа, так Вы эстет и ищете красоты и интереса? :)
Покаюсь - прочел 1е сообщение без второго - и запостил повторно вариант с топ 1 :((Ну вот, выбирайте в соответствии с эстетическими предпочтениями:
SELECT Sum(K.[СуммаКонт(руб)]) AS Sum_руб, T.КодТовара, T.[Наименование товара], Sum(K.КолПоКонт) AS Sum_Кол, Count(K.НомКонт) AS Count_Конт
FROM Товары AS T INNER JOIN Контракты AS K ON T.КодТовара=K.Код_Товара
GROUP BY T.КодТовара, T.[Наименование товара]
HAVING Sum(K.[СуммаКонт(руб)]) =(SELECT Min(Q.Sum_руб) AS minsum
FROM (SELECT Sum(K.[СуммаКонт(руб)]) AS Sum_руб
FROM Товары AS T INNER JOIN Контракты AS K ON T.КодТовара = K.Код_Товара
GROUP BY T.КодТовара, T.[Наименование товара]) AS Q
);
SELECT Sum(K.[СуммаКонт(руб)]) AS Sum_руб, T.КодТовара, T.[Наименование товара], Sum(K.КолПоКонт) AS Sum_Кол, Count(K.НомКонт) AS Count_Конт
FROM Товары AS T INNER JOIN Контракты AS K ON T.КодТовара=K.Код_Товара
GROUP BY T.КодТовара, T.[Наименование товара]
HAVING Sum(K.[СуммаКонт(руб)]) <= All (SELECT Sum(K.[СуммаКонт(руб)]) AS Sum_руб
FROM Товары AS T INNER JOIN Контракты AS K ON T.КодТовара = K.Код_Товара
GROUP BY T.КодТовара, T.[Наименование товара]);
SELECT * FROM (
SELECT Sum(K.[СуммаКонт(руб)]) AS Sum_руб, T.КодТовара, T.[Наименование товара], Sum(K.КолПоКонт) AS Sum_Кол, Count(K.НомКонт) AS Count_Конт
FROM Товары AS T INNER JOIN Контракты AS K ON T.КодТовара=K.Код_Товара
GROUP BY T.КодТовара, T.[Наименование товара]
) AS Q1,
(SELECT Min(Q.Sum_руб) AS minsum FROM (SELECT Sum(K.[СуммаКонт(руб)]) AS Sum_руб
FROM Товары AS T INNER JOIN Контракты AS K ON T.КодТовара = K.Код_Товара
GROUP BY T.КодТовара, T.[Наименование товара]) AS Q
) AS Q2
WHERE Q1.Sum_руб=Q2.minsum;
Хотя лично мне больше нравится с Top 1 - но на вкус и цвет...