Я не уверен, но кросс-аппликации можно избежать, если я пойму, что ты делаешь. и это поможет с производительностью, но, поскольку у меня нет доступа к данным, вы должны проверить их и посмотреть.
, поэтому я начну после того, как вы поместите данные во временную таблицу. попробуйте следующее: -
;with TempWithSum as (
--get the sum partition by string_groupby, int_booking_year
select *,sum(float_total) over(partition by string_groupby, int_booking_year) as float_sum_total
from @temp_00
),NamesCat as(
--get all customer names grouped by string_groupby
select string_groupby, STRING_AGG(cast(string_customer_tpi as varchar(max)), '|') as string_tpis_concat
from @temp_00
group by string_groupby
),AllData as(
--get the row number partition string_groupby and ordered by string_groupby, float_sum_total
select string_customer_name, string_customer_region, string_industry_group, string_city, z.string_state,
string_country, string_booking_type, string_sales_branch, string_sales_region, string_sales_area,
int_booking_year, float_sum_total, string_tpis_concat, string_groupby
,ROW_NUMBER() over (partition by string_groupby order by string_groupby, float_sum_total) as row_num
from TempWithSum z
inner join NamesCat on NamesCat.string_groupby=TempWithSum.string_groupby
)
select * from AllData where row_num=1
Надеюсь, что это сработает и даст нужный вам результат в ожидаемые вами сроки.
Примечание: я знаю, что вы хотели исключить номер строки, и я предлагаю исключить перекрестное применение, но ваша цель - производительность.
Если вы на 100% уверены, что $ message содержит ISO-8859-1, вы можете использовать utf8_encode , как говорит Дэвид. В противном случае используйте mb_detect_encoding и mb_convert_encoding в сообщении $.
Также обратите внимание, что
$mail -> charSet = "UTF-8";
следует заменить на:
$mail->CharSet = 'UTF-8';
и помещают после создания экземпляра класса (после нового
). Свойства чувствительны к регистру! См. документ PHPMailer для получения списка и точного написания.
Также по умолчанию PHPMailer имеет кодировку 8bit
, что может быть проблематичным с данными UTF-8. Чтобы исправить это, вы можете сделать:
$mail->Encoding = 'base64';
Обратите внимание, что 'quoted-printable'
, вероятно, тоже будет работать в этих случаях (и, возможно, даже 'binary'
). Подробнее см. RFC1341 - Поле заголовка Content-Transfer-Encoding .
Можно использовать обоих:
$mail->CharSet = 'UTF-8';
$mail->CharSet = 'utf-8';
И если Вы хотите изменить текстовое направление, можно использовать:
$mail->msgHTML('<div style=" direction: rtl;">نص تجريبي</div>');
Если в вашем сообщении используется Latin1, вы можете использовать utf8_encode В любом случае у меня работает.
$ mail -> charSet = "UTF-8"; --- эта строка должна находиться в $ mail = new PHPMailer (); линия.
пфф ..