Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 缩写查询_Sql_Ms Access - Fatal编程技术网

Sql 缩写查询

Sql 缩写查询,sql,ms-access,Sql,Ms Access,我确实有下一个要在Access中运行的查询,它运行得很好,但正如您所看到的,前3个SELECT中也有类似之处。我想知道是否有可能优化这一点,因为我将添加的猎犬 c 选择id,IIF(c1>=0,c1,)为正数,IIF(c1=0,c2,)为正数,IIF(c2=0,c3,)为正数,IIF(c3我不知道您试图存档什么,但似乎您希望按id对表进行排序,并将它们分成正数和负数,然后求和 'Order after ID SELECT ID FROM tblcosts ORDER BY ID DESC 'o

我确实有下一个要在Access中运行的查询,它运行得很好,但正如您所看到的,前3个
SELECT
中也有类似之处。我想知道是否有可能优化这一点,因为我将添加的猎犬
c


选择id,IIF(c1>=0,c1,)为正数,IIF(c1=0,c2,)为正数,IIF(c2=0,c3,)为正数,IIF(c3我不知道您试图存档什么,但似乎您希望按id对表进行排序,并将它们分成正数和负数,然后求和

'Order after ID
SELECT ID FROM tblcosts ORDER BY ID DESC 'or mabye ASC

'Positive and Negative columns
SELECT ID, IIF( ID > 0, ID, Null) AS Positive, IIF( ID < 0, ID, Null) AS Negative FROM tblcosts ORDERBY ID DESC

'Sum
SELECT SUM(ID) AS SummeID FROM tblcosts
“ID后的顺序”
按ID DESC'或mabye ASC从tblcosts订单中选择ID
'正列和负列
从tblcosts ORDERBY ID DESC中选择ID,IIF(ID>0,ID,Null)为正,IIF(ID<0,ID,Null)为负
"总和"
从tblcosts中选择SUM(ID)作为SummeID

示例数据以及您试图从该数据中获得的结果在这里会很有帮助。表不是
标准化的
,一个表/查询中只能有255个字段。不要将数百个“c”作为新列添加。SQL是“面向行的”如果您改为使用额外的行而不是额外的列,您的查询将更加容易。研究
规范化
听起来像是您想要运行-在Access中除了许多UNION子句之外没有其他方法。感谢您的建议,表的规范化和“面向行”OP不希望拆分ID,但希望拆分所有其他列。
'Order after ID
SELECT ID FROM tblcosts ORDER BY ID DESC 'or mabye ASC

'Positive and Negative columns
SELECT ID, IIF( ID > 0, ID, Null) AS Positive, IIF( ID < 0, ID, Null) AS Negative FROM tblcosts ORDERBY ID DESC

'Sum
SELECT SUM(ID) AS SummeID FROM tblcosts