Poniżej znajduje się zapytanie, które próbuję wykonać. Rozumiem błąd

ClassiTem nie jest nazwa kolumny.

Czy ktoś może mi powiedzieć, gdzie idę źle w tym zapytaniu.

SELECT 
    *, CONCAT([Cabin], [Item]) AS ClassItem 
FROM 
    FQR_RAW_1 AS ClassItem 
WHERE 
    ClassItem IN ('%JCHML - Child Meal%', '%WCHML - Child Meal%', '%YMC - Beef%', '%YMC - Chicken%', '%YMC - Fish / Shellfish%', '%YMC - Pork%', '%YMC - Regional Taste (Non Veg)%', '%YMC - Regional Taste (Veg)%', '%YMC - Vegetarian%')  
    AND [Origin Region] LIKE 'USA%'
0
dkettle01 1 sierpień 2020, 14:01

2 odpowiedzi

Najlepsza odpowiedź

Nie można ponownie użyć kolumny zdefiniowanej w klauzuli select w klauzuli where - tutaj, to jest ClassItem.

Innym problemem jest to, że nie możesz użyć IN z wieloznacznym {x1}}, co wydaje się być twoim intencją. Możesz szukać serii OR zamiast tego:

SELECT *, CONCAT([Cabin], [Item]) as ClassItem 
FROM FQR_RAW_1  
WHERE 
    (
           CONCAT([Cabin], [Item]) LIKE '%JCHML - Child Meal%'
        OR CONCAT([Cabin], [Item]) LIKE '%WCHML - Child Meal%'
        OR CONCAT([Cabin], [Item]) LIKE '%YMC - Beef%'
        OR CONCAT([Cabin], [Item]) LIKE '%YMC - Chicken%'
        OR CONCAT([Cabin], [Item]) LIKE '%YMC - Fish / Shellfish%'
        OR CONCAT([Cabin], [Item]) LIKE '%YMC - Pork%', 
        OR CONCAT([Cabin], [Item]) LIKE '%YMC - Regional Taste (Non Veg)%'
        OR CONCAT([Cabin], [Item]) LIKE '%YMC - Regional Taste (Veg)%'
        OR CONCAT([Cabin], [Item]) LIKE '%YMC - Vegetarian%'
    ) 
    AND [Origin Region] LIKE 'USA%'

Należy pamiętać, że usunąłem alias stołu, który jest właściwie nie jest potrzebny w zapytaniu, a to było identyczne z aliasem kolumnowym - chociaż SQL obsługuje to, że jest to nieco mylące. Jeśli potrzebujesz aliasu z jakiegoś powodu, użyj innego aliasu.

0
GMB 1 sierpień 2020, 11:06

Nie można ponownie użyć aliasu w tym samym zapytaniu. Jednym z prostych rozwiązań jest użycie podzewności:

SELECT r.*
FROM (SELECT r.*, CONCAT([Cabin],[Item]) as ClassItem
      FROM FQR_RAW_1 AS r
     ) r
WHERE ClassItem IN ('%JCHML - Child Meal%', '%WCHML - Child Meal%', '%YMC - Beef%', '%YMC - Chicken%', '%YMC - Fish / Shellfish%', '%YMC - Pork%', '%YMC - Regional Taste (Non Veg)%', '%YMC - Regional Taste (Veg)%', '%YMC - Vegetarian%') AND
      [Origin Region] LIKE 'USA%'
0
Gordon Linoff 2 sierpień 2020, 01:35