Я пытаюсь создать задание USQL и определить свои столбцы из CSV, из которых они будут извлекаться, однако у меня всегда возникают проблемы в части JOIN, потому что столбцы Я совпадаю с другим типом. Это странно, потому что я определил их как один тип. Смотрите скриншот где проблема лежит:Ошибка сборки U-SQL, equijoin имеют разные типы
Вот полный USQL:
@guestCheck =
EXTRACT GuestCheckID int,
POSCheckGUID Guid,
POSCheckNumber int?,
OwnerEmployeeID int,
CreatedDateTime DateTime?,
ClosedDateTime DateTime?,
TicketReference string,
CheckAmount decimal?,
POSTerminalID int,
CheckState string,
LocationID int?,
TableID int?,
Covers int?,
PostedDateTime DateTime?,
OrderChannelID int?,
MealPeriodID int?,
RVCLocationID int?,
ReopenedTerminalID int?,
ReopenedEmployeeID int?,
ReopenedDateTime DateTime?,
ClosedBusDate int?,
PostedBusDate int?,
BusHour byte?,
TaxExempt bool?,
TaxExemptReference string
FROM "/GuestCheck/GuestCheck-incomplete.csv"
USING Extractors.Csv();
@guestCheckAncillaryAmount =
EXTRACT CheckAncillaryAmountID int,
GuestCheckID int,
GuestCheckItemID int?,
AncillaryAmountTypeID int,
Amount decimal,
FirstDetail int?,
LastDetail int?,
IsReturn bool?,
ReturnReasonID int?,
AncillaryReasonID int?,
AncillaryNote string,
ClosedBusDate int?,
PostedBusDate int?,
BusHour byte?,
LocationID int?,
RVCLocationID int?,
IsDelisted bool?,
Exempted bool?
FROM "/GuestCheck/GuestCheckAncillaryAmount.csv"
USING Extractors.Csv();
@ancillaryAmountType =
EXTRACT AncillaryAmountTypeID int,
AncillaryAmountCategoryID int,
CustomerID int,
CheckTitle string,
ReportTitle string,
Percentage decimal,
FixedAmount decimal,
IncludeOnCheck bool,
AutoCalculate bool,
StoreAtCheckLevel bool?,
DateTimeModified DateTime?,
CheckTitleToken Guid?,
ReportTitleToken Guid?,
DeletedFlag bool,
MaxUsageQty int?,
ApplyToBasePriceOnly bool?,
Exclusive bool,
IsItem bool,
MinValue decimal,
MaxValue decimal,
ItemGroupID int?,
LocationID int,
ApplicationOrder int?,
RequiresReason bool,
Exemptable bool?
FROM "/GuestCheck/AncillaryAmountType.csv"
USING Extractors.Csv();
@read =
SELECT t.POSCheckGUID,
t.POSCheckNumber,
t.CheckAmount,
aat.AncillaryAmountTypeID,
aat.CheckTitle,
gcd.Amount
FROM @guestCheck AS t
LEFT JOIN
@guestCheckAncillaryAmount AS gcd
ON t.GuestCheckID == gcd.GuestCheckID
LEFT JOIN
@ancillaryAmountType AS aat
ON gcd.AncillaryAmountTypeID == aat.AncillaryAmountTypeID
WHERE aat.AncillaryAmountCategoryID IN(2, 4, 8);
OUTPUT @read
TO "/GuestCheckOutput/output.csv"
USING Outputters.Csv();
Оцените ответ Alexandre. Тем не менее, AncillaryAmountTypeID в файле guestCheckAncillaryAmount и ancillaryAmountType определяется как int. Итак, почему он говорит, что один является int? когда я никогда не заявлял, что это так. – AnimaSola