我的查询有问题。我使用T-SQL。
我写了这个查询:
SELECT COUNT(*),
MR.IDEsercizioRiabilitativo
FROM AA_V_MONITOR_RisultatiEserciziR MR
INNER JOIN AA_V_TER_TerapieRiabilitative TT
ON MR.IDTerapia = TT.ID
WHERE MR.IDEsercizioRiabilitativo IN ( 9, 10, 14 )
AND TT.CodiceFiscaleAssistito IN ('RICCARDINOFUFFOL')
AND MR.DATAESECUZIONE >= '2012-01-01'
AND MR.DataEsecuzione <= '2013-12-12'
GROUP BY MR.IDEsercizioRiabilitativo
我有这个结果:
count(*) IdEsercizioRiabilitativo
2 10
1 11
1 14
这个结果没关系,但我想要行数。我想检索IDESERCIZIORIABILITATIVO的数量。
我想计算IdEsercizioRiabilitativo的数量。
在样本中,我应该检索一个数字3。
IdEsercizioRiabilitativo 10,11,14。有三种截然不同的IdEsercizioRiabilitativo
我不使用Java,C ++或其他,但我开发了StoreProceedure
所以我在
中修改了我的查询SELECT count()
FROM (
SELECT COUNT()
,MR.IDEsercizioRiabilitativo
FROM AA_V_MONITOR_RisultatiEserciziR MR
INNER JOIN AA_V_TER_TerapieRiabilitative TT ON MR.IDTerapia = TT.ID
WHERE MR.IDEsercizioRiabilitativo IN (
9
,10
,14
)
AND TT.CodiceFiscaleAssistito IN ('RICCARDINOFUFFOL')
AND MR.DATAESECUZIONE >= '2012-01-01'
AND MR.DataEsecuzione <= '2013-12-12'
GROUP BY MR.IDEsercizioRiabilitativo
)
但我有这个回应
Msg 102,Level 15,State 1,Line 8 Sintassi non correttainprossimità di')'。
你能帮助我吗?
感谢所有
答案 0 :(得分:1)
使用@@ ROWCOUNT属性知道从查询中检索的行数。
如果您使用的是Java JDBC API,那么您将拥有resultSet.last()和resultSet.getRowNum()。这两种方法受到jdbc驱动程序和底层数据库的支持
答案 1 :(得分:0)
如果您使用其他COUNT()
,该怎么办?从((SELECT COUNT(*),MR.IDEsercizioRiabilitativo FROM FOO)中选择count( * )作为derivedTable)
当然,您必须更改derivedTable请求,或者只是执行其他请求并使用DISTINCT子句。
答案 2 :(得分:0)
试试这个:
SELECT count(*)
FROM (
SELECT COUNT(*) as TOT
,MR.IDEsercizioRiabilitativo
FROM AA_V_MONITOR_RisultatiEserciziR MR
INNER JOIN AA_V_TER_TerapieRiabilitative TT ON MR.IDTerapia = TT.ID
WHERE MR.IDEsercizioRiabilitativo IN (
9
,10
,14
)
AND TT.CodiceFiscaleAssistito IN ('RICCARDINOFUFFOL')
AND MR.DATAESECUZIONE >= '2012-01-01'
AND MR.DataEsecuzione <= '2013-12-12'
GROUP BY MR.IDEsercizioRiabilitativo
) temp
答案 3 :(得分:0)
我认为这可能更简单:
SELECT COUNT(DISTINCT MR.IDEsercizioRiabilitativo)
FROM AA_V_MONITOR_RisultatiEserciziR MR
INNER JOIN AA_V_TER_TerapieRiabilitative TT
ON MR.IDTerapia = TT.ID
WHERE MR.IDEsercizioRiabilitativo IN ( 9, 10, 14 )
AND TT.CodiceFiscaleAssistito IN ('RICCARDINOFUFFOL')
AND MR.DATAESECUZIONE >= '2012-01-01'
AND MR.DataEsecuzione <= '2013-12-12'