Это расширенный комментарий, а не ответ, пожалуйста, примите, что я
необходимые элементы управления форматированием перед голосованием это.
Вы, кажется, добавили запрос в комментарий, хотя синтаксис был не совсем корректным. Вы часто использовали стандартные скобки ()
вместо скобок []
, и для завершения IN()
отсутствовали закрывающие скобки. Я считаю, что ваш запрос должен выглядеть следующим образом:
SELECT
empname AS remarks
, [1-1-18]
, [1-2-18]
, [1-3-18]
, [1-4-18]
, [1-5-18]
FROM (
SELECT
empname
, joimonth
, releivedmonth
FROM emply
) AS s
PIVOT (
COUNT(releivedmonth)
FOR joinmonth IN ([1-1-18], [1-2-18], [1-3-18], [1-4-18], [1-5-18])
) piv
Вы не должны пытаться добавлять запросы к комментариям, вместо этого просто отредактируйте вопрос.
В этом запросе вы ссылаетесь на значения, которые выглядят как 1-1-18 , но в выборке данных нет ничего похожего на это вообще. Каким типом данных являются столбцы [joinmonth] и [releivedmonth]?
С данными, которые являются текстом в этих столбцах, у вас есть существенная проблема. Если, например, все они разные: Jan-18.
, Jan 18
, Jan-18
, поэтому они не будут выровнены так, как вам нужно. Изменения в данных, подобных этому, сделают это невозможным.
CREATE TABLE emply(
Empcode NUMERIC(9,0)
,empname VARCHAR(6)
,desig VARCHAR(8)
,joinmonth varchar(30)
,releivemonth varchar(30)
);
INSERT INTO emply(Empcode,empname,desig,joinmonth,releivemonth) VALUES (1.,'A1.','D1.','Jan-18.',NULL);
INSERT INTO emply(Empcode,empname,desig,joinmonth,releivemonth) VALUES (2.,'A2.','D2.','Jan-18.','May 18');
INSERT INTO emply(Empcode,empname,desig,joinmonth,releivemonth) VALUES (3.,'A3.','D3.','Jan-18.',NULL);
SELECT
empname AS remarks
, [Jan-18.]
, [Feb-18.]
, [Mar-18.]
, [Apr-18.]
, [May-18.]
FROM (
SELECT
empname
, joinmonth
, releivemonth
FROM emply
) AS s
PIVOT (
COUNT(releivemonth)
FOR joinmonth IN ([Jan-18.], [Feb-18.], [Mar-18.], [Apr-18.], [May-18.])
) piv
Вывод этого однако:
+----+---------+---------+---------+---------+---------+---------+
| | remarks | Jan-18. | Feb-18. | Mar-18. | Apr-18. | May-18. |
+----+---------+---------+---------+---------+---------+---------+
| 1 | A1. | 0 | 0 | 0 | 0 | 0 |
| 2 | A2. | 1 | 0 | 0 | 0 | 0 |
| 3 | A3. | 0 | 0 | 0 | 0 | 0 |
+----+---------+---------+---------+---------+---------+---------+
Существует только одно ненулевое значение COUNT(releivemonth)