Как использовать для своей выгоды акронимы на имена объекта?

Ваш главный вопрос: почему вы не получаете данные для данного запроса? Итак, вы хотите отладить и проверить, в чем проблема.

Итак, для данного параметра,

DECLARE @u_cnt INT;
DECLARE @f_yr DATE;
DECLARE @qrt VARCHAR(3);
DECLARE @dnum VARCHAR(5);


SET @u_cnt = 10000;
SET @f_yr = '2002-05-20';
SET @qrt = 'Q2';
SET @dnum = '43234';

, поэтому начните с базового

 select * 
    FROM cforms c 
    --INNER JOIN spitems sp
    --ON c.Id = s.FormId
    WHERE c.Group = 'HR'
    --AND c.bFlag IS NULL
--AND s.Report IN ('P', 'N')

, обратите внимание на часть комментариев, возвращает ли она данные, если да, то раскомментируйте AND c.bFlag IS NULL и так раскомментирует другую часть.

Вы уверены, что это будет INNER JOIN или LEFt JOIN?

Поместите подзапрос периода в временную таблицу, хотя это не главная причина, если он возвращает меньше записей, то вы также можете использовать CTE,

Create table #tempperiod(period varchar(6))
insert into #tempperiod(period)
select 
            cast(year(@f_yr) + 
                case
                    when f.Quarter = 'Q1'
                        then (-1)
                    when f.Quarter = 'ALL'
                        and f.FyMonthNumber in ('10', '11', '12')
                        then (-1)
                    else (0)
                end as varchar(4))
                + f.FyMonthNumber 
        from FyQm f
        where f.Quarter = @qrt

-- in order to test,does it return any records,does it return desire output
select * from #tempperiod
  1. Проверка пробела (LTRIM and RTRIM) в столбцах, который используется в предикате.
  2. Избегайте деления на 0 в вашем случае case
  3. Если это действительно, INNER JOIN, тогда используйте EXISTS предложение, потому что вам не нужны spitems sp столбцы.
  4. Что такое ORDER BY 1 GroupLabel тогда вы не нуждаетесь в них в предложении Order, потому что все строки будут 'HR' + '43234'
  5. ВСЕ выше, вам вообще не нужен Order by, потому что coz Group By будет сортировать его для ты и это единственное требование.
  6. Тщательно проверьте данные #tempperiod, формат такой же, как у

    CONVERT (VARCHAR (6), c.changedate, 112)

7
задан Andrzej Doyle 9 January 2009 в 17:33
поделиться

5 ответов

Я - поклонник обработки Акронимов как одно слово при превращении в капитал, таким образом, мне нравится createSqlBuffer.

11
ответ дан 6 December 2019 в 09:23
поделиться

Рекомендации по именованию.NET (даже при том, что это - Паскаль, случился) предлагают только использовать для своей выгоды первую букву в акрониме, если это не двухбуквенный акроним (так, createSqlBuffer, но createIOBuffer).

4
ответ дан 6 December 2019 в 09:23
поделиться

Это может быть немного более симпатично, чтобы иметь fudgeSql (), чем fudgeSQL (), но последний иногда кажется более корректным в определенных контекстах.

Будут времена, когда Вы закончите с акронимом и другим акронимом друг рядом с другом в имени класса или имени метода, и это не так хорошо. Также немного легче только к единственному капиталу, когда я ввожу, так или иначе. Однако я не думаю, что было бы хорошо иметь его во всех случаях. Конечно, ввод-вывод-> IO, я не хотел бы видеть Io (луна Юпитера) как часть имени класса или имени метода. Возможно, это - одна из тех вещей, которая субъективна, и зависит от самого акронима. Пока Вы последовательны...

Одна вещь, в Java, с методами считывания и методами set состоит в том, что с верхним преобразованием регистра, Ваши переменные заканчивают тем, что имели необходимость быть:

private ACRO aCRO;

вместо более хорошего

private ACRO acro;

потому что сгенерированные методы считывания и методы set (в Eclipse, так или иначе)

void setAcro(ACRO acro)

несовместимы с соглашением о присвоении имен.

void setACRO(ACRO aCRO);

Если Вы видите то, что я имею в виду.

1
ответ дан 6 December 2019 в 09:23
поделиться

Мой опыт состоит в том, что Обычная конвенция состоит в том, чтобы рассматривать ограничения как разделителей слов, т.е., useSql не UseSQL. Правильный ответ должен использовать любую конвенцию, делает код самым четким, и используйте его последовательно. Как JeeBee указывает, это может быть затронуто предположениями о Ваших инструментах.

1
ответ дан 6 December 2019 в 09:23
поделиться

IMO, используя для своей выгоды только первую букву акронима имеет смысл когда преобразование регистра верблюда, если только потому, что, используя для своей выгоды все разрывы слова заключающее в корпус верблюда поведение. Прописные буквы в слове в корпусе верблюдом, как предполагается, указывают на запуск каждого слова, не следуют за случающимися нормальными английскими правилами преобразования регистра. Если Вы верхний регистр весь акроним, Вы теряете четкое разделение между концом акронима и начало следующего слова.

Также легче ввести (и немного более хороший на глазах) только с одним капиталом.

Я соглашаюсь о IO и большинстве других двухбуквенных сокращений, все же. Я обычно оставлял бы их использованными для своей выгоды, даже рассматривающее вышеупомянутое. В конце это действительно о том, что легче считать.

3
ответ дан 6 December 2019 в 09:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: