Count в консультации sql

Я стараюсь считать количество расположений (SELECT COUNT(t.SI_Ubicacion)) AS cantidad,

SELECT 
t.SI_Articulo, 
m.SI_Descripcion, 
t.SI_UM, 
(CASE WHEN c.SI_OV IS NOT NULL THEN '*' ELSE NULL END) AS SI_OV, 
(SELECT COUNT(t.SI_Ubicacion)) AS cantidad, 
t.SI_Existencia, c.SI_Cantidad, c.SI_Cantidad - t.SI_Existencia AS SI_Dif ,
(c.SI_Cantidad - t.SI_Existencia) * m.SI_Costo_Promedio AS SI_Dif_Dinero 
FROM SI_Inventario_Teorico_QAD t INNER JOIN SI_Maestro_Ref_QAD m ON m.SI_Num_Articulo = t.SI_Articulo 
LEFT JOIN SI_Conteo c ON c.SI_Num_Articulo = t.SI_Articulo

Но он говорит мне, что:

Колонна 'SI_Inventario_Teorico_QAD.SI_Articulo' списка выбора не является действительной, потому что она не содержалась ни в функции атташе ни в статье GROUP BY.

0
задан 27.06.2017, 18:07
2 ответа

Ты был бы должен группировать в статье group by колонны, которые не включены в функцию добавления, как он это count

SELECT 
t.SI_Articulo, 
m.SI_Descripcion, 
t.SI_UM, 
(CASE WHEN c.SI_OV IS NOT NULL THEN '*' ELSE NULL END) AS SI_OV, 
(SELECT COUNT(t.SI_Ubicacion)) AS cantidad, 
t.SI_Existencia, c.SI_Cantidad, c.SI_Cantidad - t.SI_Existencia AS SI_Dif ,
(c.SI_Cantidad - t.SI_Existencia) * m.SI_Costo_Promedio AS SI_Dif_Dinero 
FROM SI_Inventario_Teorico_QAD t INNER JOIN SI_Maestro_Ref_QAD m ON 
m.SI_Num_Articulo = t.SI_Articulo 
LEFT JOIN SI_Conteo c ON c.SI_Num_Articulo = t.SI_Articulo
GROUP BY t.SI_Articulo,m.SI_Descripcion,t.SI_UM,SI_OV,t.SI_Existencia, c.SI_Cantidad, SI_Dif ,SI_Dif_Dinero

типов привета

2
ответ дан 24.11.2019, 07:57

Каждый раз, когда ты использовал count в SELECT, чтобы показывать данные, в которых ты нуждаешься, tods другие данные нуждаются в том, чтобы группироваться согласно чему-то, ты нуждаешься в том, чтобы поместить group by в конце всей твоей консультации

Ты мог бы тестировать помещать в конце концов

GROUP BY t.SI_Articulo, m.SI_Descripcion, t.SI_UM, t.SI_Existencia, c.SI_Cantidad

Другое наблюдение, ты манипулируешь многими условиями в SELECT, movelas в лучший WHERE

0
ответ дан 24.11.2019, 07:57