我使用下面的打开查询从链接的服务器获取数据。
select * from openquery(HH2, 'select * from "!Root"."!All".RAWDATA' )
WHERE quality = 0 and TAGNAME LIKE '%OBTS_data%' AND TIMESTAMP <= '2022-10-10 13:27'
我需要将其限制在对数据库值的尊重上,这意味着一旦数据库值中的所有项都可用在一列中,查询就应该停止执行。
查询输出类似于
数据库看起来就像
今天,我开始编写一个查询,如下所示:
SELECT IP1.InstId,CAST(IP2.Quote AS DECIMAL(10,2)) AS 'CurrentPrice',IP1.Quote,(IP2.Quote-IP1.Quote) AS 'Change'
FROM InstrumentPrices IP1
INNER JOIN InstrumentPrices IP2
ON IP1.InstId=IP2.InstId
INNER JOIN Instruments I
ON I.Id=IP2.InstId
INNER JOIN Games G
ON G.
因此,我需要获得正在处理的表中20+列的总和,我真的希望不必写出每一列的总和,但我不确定这是否可能。有没有一种方法可以动态地为表中的所有列写上这段代码?
select isnull(osname, 'Total'), COUNT(*), SUM(col1), SUM(col2), SUM(col3)...sum(col27)
from usage
group by osname
with rollup
假设我有一个疑问:
SELECT FirstName, LastName, Sex, Age FROM Human
如果出于任何原因,表中的值为null,我们可以:
coalesce(FirstName, 'Unknown')
对于具有更多列的大型查询,是否有一种方法可以合并每个列,但又不重复coalesce操作的数量,而不是单独合并每个列?
就像这样:
SELECT coalesce(FirstName, LastName, Sex, Age, 'Unknown') FROM Human
(我知道这是错误的,而且行不通,这是我的例子的一部分,试图说明我的意图)
我想在mysql中做关联。
我对如何从每列(1-24)中减去列的平均值感到困惑?
表:
首先,我尝试用循环选择每一列,如果成功,我将开始减去它们,但选择每一列失败。
代码:
BEGIN
DECLARE i INT;
SET i:=1;
myloop: LOOP
SELECT 'i' FROM test_correl2 AS DEM;
SET i=i+1;
IF i=25 then
LEAVE myloop;
END IF;
END LOOP myloop;
SELECT @i;
END
我想获得一个更简单的查询,它遍历一个表的所有列,并为每个列返回相同数量的表。
例如..。
select distinct a from tbl;
select distinct b from tbl;
select distinct c from tbl;
select distinct d from tbl;
如果一次运行,将返回四个表。这给出了我想要的结果,但我必须键入每一列,特别是如果我有很多列。我如何编写一个查询,该查询将遍历所有列并给出相同的结果,而不必这样做?
在这种情况下,我需要计算同一列的连续两行之间的差异。这是我的桌子,名为“订单”结构。
orderid type productsales
1002 Order 120
1002 Refund -35
1003 Order 199
1003 Refund -50
1004 Order 245
1005 Order 80
现在,我只选择那些订单类型的“orderids”和“退款”之间的“产品销售”差异大于0的记录。
我试图从另一列中减去一列,然后对结果进行求和。然而,无论我更改什么,我都会得到标题中提到的两个错误中的一个。
从发布的所有其他问题中,我得出的结论是,我的声明应该是:
SELECT SUM(EndTime-BeginTime) AS TotalTime FROM TimeRegister
WHERE OrderNumber = 00000 AND Activity = 11111;
根据另一主题的建议,我将声明改为:
SELECT SUM(CONVERT(varchar(EndTime-BeginTime), 108)) AS TotalTime FROM TimeRegister
WHE