Вы можете использовать атрибут в своем HTML, а не использовать JS.
В этом случае существуют разные способы решения проблемы.
В этом случае это будет просто классический адаптивный стиль.
Здесь мы также даем браузеру изображение по умолчанию, а затем он автоматически определяет, какое из них взять в зависимости от размера экрана. 118]
Это работает в SQL-сервере (2000 и выше наверняка)
SELECT a.Store, a.Department, a.Sales
FROM temp a
INNER JOIN
(SELECT store, max(sales) as sales
FROM temp
GROUP BY Store) b
ON a.Store = b.Store AND a.Sales = b.Sales;
Это работает в Oracle, другие реализации могут иметь другой синтаксис для аналитических функций (или испытать недостаток в них полностью):
select store
, max(department) keep(dense_rank last order by sales)
, max(sales)
from (
...query that generates your results...
)
group by store
Мои 2 решения для SQL 2005 ниже. Другие, которые я вижу до сих пор, не могут возвратить корректные данные, если два из объемов продаж являются тем же. Это зависит от Ваших потребностей все же.
Первое использование Row_Number () функция, все строки оцениваются от самого низкого до самых высоких продаж (затем некоторые правила нарушающего связи). Затем самый высокий разряд выбран на хранилище для получения результата.
Можно попытаться добавить Partion пунктом к функции Row_Number (см. BOL), и/или исследуйте использование внутреннего объединения вместо "в" пункте.
Второе, одалживая на идее Тюремщика, снова оценивает их, но разделы хранилищем, таким образом, мы можем выбрать первый оцениваемый. Dense_Rank возможно даст двум идентичным строкам тот же разряд, поэтому если бы хранилище и отдел не были уникальны, то он мог бы возвратить две строки. С Row_number число уникально в разделе.
Некоторые вещи знать состоят в том, что это может быть медленным, но было бы быстрее для большинства наборов данных, чем подзапрос в одном из других решений. В том решении запрос должен был бы быть выполнен однажды на строку (включая сортировку и т.д.), который мог привести к большому количеству запросов.
Другие запросы выбор макс. продажи на хранилище и возврат данные тот путь, возвратите дублирующиеся строки для хранилища, если два отдела, оказывается, имеют те же продажи. Последний запрос показывает это.
DECLARE @tbl as TABLE (store varchar(20), department varchar(20), sales int)
INSERT INTO @tbl VALUES ('Toronto', 'Baskets', 500)
INSERT INTO @tbl VALUES ('Toronto', 'Noodles', 500)
INSERT INTO @tbl VALUES ('Toronto', 'Fish', 300)
INSERT INTO @tbl VALUES ('Halifax', 'Fish', 300)
INSERT INTO @tbl VALUES ('Halifax', 'Baskets', 200)
-- Expect Toronto/Noodles/500 and Halifax/Fish/300
;WITH ranked AS -- Rank the rows by sales from 1 to x
(
SELECT
ROW_NUMBER() OVER (ORDER BY sales, store, department) as 'rank',
store, department, sales
FROM @tbl
)
SELECT store, department, sales
FROM ranked
WHERE rank in (
SELECT max(rank) -- chose the highest ranked per store
FROM ranked
GROUP BY store
)
-- Another way
SELECT store, department, sales
FROM (
SELECT
DENSE_RANK() OVER (PARTITION BY store ORDER BY sales desc,
store desc, department desc) as 'rank',
store, department, sales
FROM @tbl
) tbl
WHERE rank = 1
-- This will bring back 2 rows for Toronto
select tbl.store, department, sales
from @tbl tbl
join (
select store, max(sales) as maxSales from @tbl group by store
) tempTable on tempTable.store = tbl.store
and tempTable.maxSales = tbl.sales
Это будет работать в SQL Server, по состоянию на 2005:
with data as
(select store, department, sales
from <your query>),
maxsales as
(select store, sales = max(sales)
from data
group by store)
select store, (select top 1 department from data where store = t.store and sales = t.sales order by [your criteria for ties]), sales
from maxsales m
Я предполагаю, что Вы только хотите отобразить 1 отдел в случае связей, следовательно лучший 1 и [Ваши критерии связей] для различения их.
Это будет работать
Select Store, Department, Sales
From yourTable A
Where Sales = (Select Max(Sales)
From YourTable
Where Store = A.Store)
Это будет работать в SQL Server без временных таблиц:
SELECT Store, Department, Sales FROM
(SELECT Store, Department, Sales,
DENSE_RANK() OVER (PARTITION BY Store
ORDER BY Sales DESC) AS Dense_Rank
FROM Sales) A WHERE Dense_Rank = 1
ГДЕ "Продажи" = Ваш исходный запрос
Возможно, это могло работать. Не попробовали его хотя, могло быть лучшее решение...
select yourTable.store, dept, sales
from yourTable
join (
select store, max(sales) as maxSales from yourTable group by store
) tempTable on tempTable.store = yourTable.store
and tempTable.maxSales = yourTable.sales