Из пяти очень похожих отчетов Access, одна группа по неделям по-разному - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть пять похожих интерфейсных отчетов Access среди нескольких других. Все эти пять используют Группировать по неделям, чтобы сгруппировать записи в отчете по субботам. Один отчет выбирает сворачивание к пятницам вместо этого; это недопустимо.

Интерфейс извлекает данные из SQL Серверная часть через сквозные запросы / соединения без DSN. Это отлично работает по всем направлениям. Во всех отчетах используется одна указанная c хранимая процедура, которая имеет несколько полей даты, но этот извлекает другие поля даты из дополнительной другой базы данных. В этом отчете используется это поле даты в качестве группы, но оно сводится к пятницам. Есть еще одно поле даты, и когда я пытаюсь сгруппировать его, отчет смещается до четверга! Если я использую любое из полей даты из хранимой процедуры, я могу свернуть отчет до субботы. Я посмотрел на необработанные данные, которые появляются в ptq, и поля даты выглядят одинаково. В этих полях даты есть разные даты для любой конкретной записи, и это следует ожидать на основании различной даты отгрузки, даты доставки, полной даты и т. Д. Кажется, в этих двух полях даты, связанных с этим конкретным отчетом c, что-то присуще, но по номиналу я не могу это определить.

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

Когда я пробую разные поля даты в группе и их поле даты в группе в заголовке, группы отчетов по пятницам или другим несовместимым дням недели для JobTenderDate и JobDeliveryDate, но группируются по субботам, когда MFG и REQDATE используются для группировки с соответствующей датой в соответствующей группе в заголовке. В других четырех отчетах, которые работают, используются поля MFG, REQDATE или другие поля даты, которые позволяют группировать данные по субботам. Почему эти два поля даты не позволяют Группе сворачиваться до субботы?

В хранимой процедуре все эти поля даты - SQL CAST AS DATE, чтобы убрать метки времени. И в SQL JOIN требуется COLLATE, чтобы данные были довольны друг другом. Вот ОТ, СОЕДИНЕНИЕ, СОБЫТИЯ И ГДЕ:

FROM
    dbo.vwRPUpdate_Rel Update_Rel
INNER JOIN 
    CompanyE.dbo.WipMaster wm
ON LEFT(wm.Job,6) = UPDATE_REL.JOB COLLATE SQL_Latin1_General_CP1_CI_AS
    AND SUBSTRING(wm.Job,7,1) = UPDATE_REL.REL COLLATE SQL_Latin1_General_CP1_CI_AS
WHERE wm.Job LIKE '%A' AND wm.JobDeliveryDate BETWEEN @FromDate ANd @ToDate

Вот таблица и данные

Job JobTenderDate   JobDeliveryDate MFG REQDATE
RD83920A    2020-03-05  2020-03-06  2020-03-07  2020-03-07
RD83930A    2020-03-10  2020-03-27  2020-03-28  2020-03-28
N432470A    2020-03-13  2020-03-27  2020-03-28  2020-03-28
N432490A    2020-03-13  2020-03-27  2020-03-28  2020-03-28
C139080A    2020-03-13  2020-03-27  2020-03-28  2020-03-28
1836530A    2020-03-09  2020-03-27  2020-03-28  2020-03-28
1901272A    2020-02-28  2020-03-27  2020-03-28  2020-03-28
1902560A    2020-03-04  2020-03-27  2020-03-28  2020-03-28
1902422A    2020-03-13  2020-04-03  2020-04-04  2020-04-04
1903130A    2020-03-10  2020-04-03  2020-04-04  2020-04-04
1903450A    2020-03-11  2020-04-03  2020-04-04  2020-04-04
2000330A    2020-03-11  2020-04-03  2020-04-04  2020-04-04
2000570A    2020-03-02  2020-04-03  2020-04-04  2020-04-04
2070260A    2020-03-13  2020-04-03  2020-04-04  2020-04-04
2070270A    2020-03-13  2020-04-03  2020-04-04  2020-04-04
2031720A    2020-03-17  2020-04-03  2020-04-04  2020-04-04
N433080A    2020-03-31  2020-04-03  2020-04-04  2020-04-04
N433160A    2020-03-31  2020-04-03  2020-04-04  2020-04-04
2090032A    2020-03-11  2020-04-03  2020-04-04  2020-04-04
C139210A    2020-03-27  2020-04-03  2020-04-04  2020-04-04
C139330A    2020-04-01  2020-04-10  2020-04-04  2020-04-04
C139170A    2020-03-27  2020-04-10  2020-04-10  2020-04-10
C139190A    2020-03-27  2020-04-10  2020-04-10  2020-04-10
N432810A    2020-03-25  2020-04-10  2020-04-11  2020-04-11
2031850A    2020-03-27  2020-04-10  2020-04-10  2020-04-10
2031960A    2020-03-20  2020-04-10  2020-04-11  2020-04-11
2070090A    2020-01-24  2020-04-10  2020-04-11  2020-04-11
C139090A    2020-03-24  2020-04-10  2020-04-11  2020-04-11
2000260A    2020-03-18  2020-04-10  2020-04-11  2020-04-11
2000060A    2020-03-17  2020-04-10  2020-04-11  2020-04-11
2030460A    2020-03-13  2020-04-10  2020-04-11  2020-04-11
2031340A    2020-03-18  2020-04-10  2020-04-11  2020-04-11
2031380A    2020-03-27  2020-04-10  2020-04-10  2020-04-10
1937672A    2020-03-18  2020-04-10  2020-04-11  2020-04-11
1901260A    2020-02-18  2020-04-10  2020-04-11  2020-04-11
1903040A    2020-03-24  2020-04-17  2020-04-18  2020-04-18
1902920A    2020-03-02  2020-04-17  2020-04-18  2020-04-18
1937981A    2020-03-25  2020-04-17  2020-04-18  2020-04-18
1935630A    2020-03-20  2020-04-17  2020-04-18  2020-04-18
1937200A    2020-03-20  2020-04-17  2020-04-18  2020-04-18
1930240A    2020-03-24  2020-04-17  2020-04-18  2020-04-18
1931611A    2020-03-24  2020-04-17  2020-04-18  2020-04-18
1931900A    2020-03-31  2020-04-17  2020-04-18  2020-04-18
1934102A    2020-03-24  2020-04-17  2020-04-18  2020-04-18
2031042A    2020-03-24  2020-04-17  2020-04-18  2020-04-18
2031160A    2020-03-24  2020-04-17  2020-04-18  2020-04-18
2000700A    2020-03-20  2020-04-17  2020-04-18  2020-04-18
2030211A    2020-03-13  2020-04-17  2020-04-18  2020-04-18
2000080A    2020-03-20  2020-04-17  2020-04-18  2020-04-18
1938941A    2020-03-03  2020-04-17  2020-04-18  2020-04-18
1938942A    2020-03-17  2020-04-17  2020-04-18  2020-04-18
1938990A    2020-02-27  2020-04-17  2020-03-28  2020-03-28
C139110A    2020-03-20  2020-04-17  2020-04-18  2020-04-18
2031980A    2020-03-24  2020-04-17  2020-04-18  2020-04-18
2031550A    2020-03-25  2020-04-17  2020-04-18  2020-04-18
C139150A    2020-03-25  2020-04-17  2020-04-18  2020-04-18
C139130A    2020-03-20  2020-04-20  2020-04-18  2020-04-18
2070280A    2020-03-25  2020-04-24  2020-04-25  2020-04-25
2030810A    2020-03-25  2020-04-24  2020-04-25  2020-04-25
2031760A    2020-03-27  2020-04-24  2020-04-25  2020-04-25
2031820A    2020-04-01  2020-04-24  2020-04-25  2020-04-25
C139220A    2020-03-27  2020-04-24  2020-04-25  2020-04-25
1939060A    2020-03-25  2020-04-24  2020-04-25  2020-04-25
2000120A    2020-04-01  2020-04-24  2020-04-25  2020-04-25
1938320A    2020-03-17  2020-04-24  2020-04-25  2020-04-25
2000500A    2020-03-27  2020-04-24  2020-04-24  2020-04-24
2031210A    2020-03-25  2020-04-24  2020-04-25  2020-04-25
2031270A    2020-03-27  2020-04-24  2020-04-24  2020-04-24
2031520A    2020-03-26  2020-04-24  2020-04-25  2020-04-25
2031540A    2020-03-31  2020-04-24  2020-04-25  2020-04-25
1934370A    2020-03-25  2020-04-24  2020-04-25  2020-04-25
1934850A    2020-03-25  2020-04-24  2020-04-25  2020-04-25
1931600A    2020-03-26  2020-04-24  2020-04-25  2020-04-25
1935710A    2020-03-18  2020-04-24  2020-04-25  2020-04-25
1936230A    2020-03-31  2020-04-24  2020-04-25  2020-04-25
1938183A    2020-03-02  2020-04-24  2020-04-25  2020-04-25
1937940A    2020-03-27  2020-04-24  2020-04-25  2020-04-25
1903160A    2020-03-31  2020-04-24  2020-04-25  2020-04-25
1903360A    2020-04-01  2020-04-24  2020-04-25  2020-04-25
1903371A    2020-03-27  2020-04-24  2020-04-25  2020-04-25
1903420A    2020-03-26  2020-04-24  2020-04-25  2020-04-25
1902392A    2020-04-01  2020-04-24  2020-04-25  2020-04-25
1901300A    2020-03-27  2020-04-24  2020-04-25  2020-04-25
1901172A    2020-03-25  2020-04-24  2020-04-25  2020-04-25
1902220A    2020-04-01  2020-05-01  2020-05-02  2020-05-02
1902980A    2020-03-25  2020-05-01  2020-05-02  2020-05-02
1937950A    2020-03-17  2020-05-01  2020-05-02  2020-05-02
1932680A    2020-03-27  2020-05-01  2020-05-02  2020-05-02
1934893A    2020-03-25  2020-05-01  2020-05-02  2020-05-02
2031440A    2020-04-01  2020-05-01  2020-05-02  2020-05-02
2030212A    2020-03-20  2020-05-01  2020-05-02  2020-05-02
2030213A    2020-03-27  2020-05-01  2020-05-02  2020-05-02
2030240A    2020-03-25  2020-05-01  2020-05-02  2020-05-02
2030140A    2020-04-01  2020-05-01  2020-05-02  2020-05-02
2030180A    2020-04-01  2020-05-01  2020-05-02  2020-05-02
2030640A    2020-03-18  2020-05-01  2020-05-02  2020-05-02
2000590A    2020-04-01  2020-05-01  2020-05-02  2020-05-02
2030430A    2020-03-20  2020-05-08  2020-05-09  2020-05-09
1938184A    2020-03-02  2020-05-08  2020-05-09  2020-05-09
1937600A    2020-03-26  2020-05-08  2020-05-09  2020-05-09
2070240A    2020-03-02  2020-05-08  2020-05-09  2020-05-09
2000040A    2020-04-01  2020-05-15  2020-05-16  2020-05-16
2000090A    2020-03-26  2020-05-22  2020-05-23  2020-05-23
2000100A    2020-03-26  2020-05-22  2020-05-23  2020-05-23
2032050A    2020-03-31  2020-05-22  2020-05-23  2020-05-23
2070230A    2020-02-25  2020-06-12  2020-06-13  2020-06-13
1901273A    2020-03-17  2020-06-26  2020-06-27  2020-06-27
1970440A    2019-07-02  2020-12-12  2020-12-12  2020-12-12
N430250A    2019-12-04  2020-12-26  2020-12-31  2020-12-31

New table shows Date/Time field type

новая таблица проверяет правильный тип поля при переходе.

Access Group, Sort, and Total section Все отчеты группируются по неделям. Других параметров для настройки по неделям нет.

Куда бы я применил код datepart ("ww", [JobTenderDate])?

Когда я смотрю на даты в четыре поля даты, я вижу, что MFG и REQDATE - это в основном даты субботы, начиная с нескольких дат пятницы. При сортировке по REQDATE все даты 4/10 сворачиваются до пятницы 4/10, хотя дат 4/11 больше. Я не понимаю, как группа определяет, какую дату свернуть. И когда я смотрю на JobDeliveryDate, его даты в основном относятся к предыдущей пятнице, а FobTenderDate повсеместно и в основном не совпадает с датами свертывания в субботу. Это где код, который вы предлагаете, вступит в игру? Я до сих пор не понимаю, где именно это будет размещено. Или здесь есть какая-то информация, которая может быть изложена в группе Access для определения характеристик?

ОК, поэтому отчет выполняет то, что ему сообщается, с указанными датами, в зависимости от того, какое поле даты используется. Как заставить все группы всегда сверяться по субботам и содержать даты недели, предшествующей этой субботе?

TIA, Tim

1 Ответ

0 голосов
/ 06 апреля 2020

Скорее всего, на одном компьютере установлены разные настройки даты.

Попробуйте принудительно задать определенное правило c для получения номера недели, в котором первым днем ​​недели будет воскресенье:

DatePart("ww",[JobTenderDate],1) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...