Sql 按项目排序必须出现在选择列表中
我的查询出错,无法与其他查询合并。当我执行查询时,会显示以下错误消息 如果语句包含UNION、INTERSECT或EXCEPT运算符,则ORDER BY项必须出现在选择列表中Sql 按项目排序必须出现在选择列表中,sql,sql-server,Sql,Sql Server,我的查询出错,无法与其他查询合并。当我执行查询时,会显示以下错误消息 如果语句包含UNION、INTERSECT或EXCEPT运算符,则ORDER BY项必须出现在选择列表中 你的问题很大。最简单的修复方法是将“按元素排序”添加到“选择”: SELECT a.strMachID, a.strProdType, b.strDesc as Product,(SELECT COUNT(strProdType) FROM tblCurrTrx WHERE strMachid = a.strMac
你的问题很大。最简单的修复方法是将“按元素排序”添加到“选择”:
SELECT a.strMachID, a.strProdType, b.strDesc as Product,(SELECT COUNT(strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and
strProdType = b.strProdType and strTransStatus='00' AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND
dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='01') As Completed ,
(SELECT COUNT (strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='01') As Exception ,
(SELECT COUNT (DISTINCT strTransStatus) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('00','01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='01') As ProdCnt ,
(SUM(dblPaidAmt) )- SUM(((((a.intRM1Dispense * 1 + a.intRM5Dispense * 5) + a.intRM10Dispense * 10) + a.int10CentDispense * 0.1) +
a.int20CentDispense * 0.2) + a.int50CentDispense * 0.5) as TotValue FROM tblCurrTrx a, tblProductType b WHERE(b.strProdType = a.strProdType) AND
strMachID = '01' AND ysnCashJammed='0' AND strTransStatus IN ('00','01') AND a.dtmCreated>='28/Jan/2020' AND a.dtmCreated<'30/Jan/2020' AND
strMachID = '01'and strPaymentMethod ='01' GROUP BY a.strMachID, a.strProdType,b.strDesc, b.strProdType
UNION
SELECT a.strMachID, a.strProdType, b.strDesc as Product,(SELECT COUNT(strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and
strProdType = b.strProdType and strTransStatus='00' AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND
dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='02') As Completed ,
(SELECT COUNT (strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='02') As Exception ,
(SELECT COUNT (DISTINCT strTransStatus) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('00','01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='02') As ProdCnt ,
(SUM(dblPaidAmt) )- SUM(((((a.intRM1Dispense * 1 + a.intRM5Dispense * 5) + a.intRM10Dispense * 10) + a.int10CentDispense * 0.1) +
a.int20CentDispense * 0.2) + a.int50CentDispense * 0.5) as TotValue FROM tblCurrTrx a, tblProductType b WHERE(b.strProdType = a.strProdType) AND
strMachID = '01' AND ysnCashJammed='0' AND strTransStatus IN ('00','01') AND a.dtmCreated>='28/Jan/2020' AND a.dtmCreated<'30/Jan/2020' AND
strMachID = '01'and strPaymentMethod ='02'
GROUP BY a.strMachID, a.strProdType,b.strDesc, b.strProdType ORDER BY a.strMachID, a.strProdType
那么你的问题是什么?错误信息不言自明。您似乎有两个帐户?我尝试使用UNION将查询合并为一个查询。错误消息告诉您出了什么问题?如果没有表架构和示例数据,人们如何执行此长查询。如果您想从我们这里得到解决,您应该通过编辑问题,在可执行的SQL Server语句中给出表模式和示例数据。
SELECT a.strMachID, a.strProdType, b.strDesc as Product,(SELECT COUNT(strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and
strProdType = b.strProdType and strTransStatus='00' AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND
dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='01') As Completed ,
(SELECT COUNT (strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='01') As Exception ,
(SELECT COUNT (DISTINCT strTransStatus) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('00','01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='01') As ProdCnt ,
(SUM(dblPaidAmt) )- SUM(((((a.intRM1Dispense * 1 + a.intRM5Dispense * 5) + a.intRM10Dispense * 10) + a.int10CentDispense * 0.1) +
a.int20CentDispense * 0.2) + a.int50CentDispense * 0.5) as TotValue FROM tblCurrTrx a, tblProductType b WHERE(b.strProdType = a.strProdType) AND
strMachID = '01' AND ysnCashJammed='0' AND strTransStatus IN ('00','01') AND a.dtmCreated>='28/Jan/2020' AND a.dtmCreated<'30/Jan/2020' AND
strMachID = '01'and strPaymentMethod ='01' GROUP BY a.strMachID, a.strProdType,b.strDesc, b.strProdType
UNION
SELECT a.strMachID, a.strProdType, b.strDesc as Product,(SELECT COUNT(strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and
strProdType = b.strProdType and strTransStatus='00' AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND
dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='02') As Completed ,
(SELECT COUNT (strProdType) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='02') As Exception ,
(SELECT COUNT (DISTINCT strTransStatus) FROM tblCurrTrx WHERE strMachid = a.strMachID and strProdType = b.strProdType and
strTransStatus IN ('00','01') AND ysnCashJammed='0' AND dtmCreated>='28/Jan/2020' AND dtmCreated<'30/Jan/2020' AND strMachID = '01' and strPaymentMethod ='02') As ProdCnt ,
(SUM(dblPaidAmt) )- SUM(((((a.intRM1Dispense * 1 + a.intRM5Dispense * 5) + a.intRM10Dispense * 10) + a.int10CentDispense * 0.1) +
a.int20CentDispense * 0.2) + a.int50CentDispense * 0.5) as TotValue FROM tblCurrTrx a, tblProductType b WHERE(b.strProdType = a.strProdType) AND
strMachID = '01' AND ysnCashJammed='0' AND strTransStatus IN ('00','01') AND a.dtmCreated>='28/Jan/2020' AND a.dtmCreated<'30/Jan/2020' AND
strMachID = '01'and strPaymentMethod ='02'
GROUP BY a.strMachID, a.strProdType,b.strDesc, b.strProdType ORDER BY a.strMachID, a.strProdType