Неверный синтаксис рядом с ключевым словом «FROM» в SQL Server - PullRequest
0 голосов
/ 16 апреля 2019

Пожалуйста, помогите мне в коде, я получаю сообщение об ошибке

Неверный синтаксис рядом с ключевым словом 'FROM'

SELECT 
    produkt.Twr_Kod as kod,
    (SELECT
         ISNULL(SUM(zasoby.TwZ_Ilosc), 0) + ISNULL(SUM(trs_ilosc), 0) 
     FROM
         cdn.TraSElem 
     WHERE
         trs_typ = 3 AND TrS_TrEIdWydania = 0 
         AND TrS_DataOpe > GETDATE() AND zasoby.TwZ_TwrId = TrS_TwrId 
         AND zasoby.TwZ_MagId = 1
     FROM 
         CDN.TwrZasoby as zasoby
     WHERE 
         zasoby.Twz_TwrId = product.Twr_twrid) AS zasoby,
    CONVERT(NUMERIC(10, 0), produkt.Twr_IloscMin) AS ilosc_minimalna
FROM
    CDN.Towary AS product
LEFT JOIN 
    CDN.Towary AS produkt ON product.Twr_TwrId = produkt.Twr_TwrId
GROUP BY 
    product.Twr_TwrId, produkt.Twr_Kod, produkt.Twr_IloscMin
ORDER BY 
    kod

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

SQL вроде должны выглядеть так:

SELECT columns FROM tables_or_queries WHERE predicates GROUP BY grouping_keys ORDER BY columns

Этот шаблон может быть вложен как в область SELECT, так и в область FROM:

SELECT
  column1,
  (SELECT columnA FROM table WHERE where_predicates) as column2,
  column3
FROM
  table
  INNER JOIN
  (SELECT columnA, columnB FROM table WHERE where_predicates) as nested_query
  ON join_predicates
WHERE
  where_predicates

Но у вас не может быть нескольких регионов FROM и т. Д. Чтобы получить более точный совет, вам нужно будет сообщить нам, на что, как вы надеетесь, ваш запрос. Сейчас мы можем только сказать, чтобы разобраться в базовом синтаксисе. ошибки, на которые жалуется процесс компиляции

0 голосов
/ 16 апреля 2019

Кажется, у вас есть несколько операторов FROM в одном операторе SELECT. Каждый SELECT может иметь только одно предложение FROM. Просматривая ваш запрос, я думаю, что он даст вам кошмары производительности. Используйте объединения вместо использования встроенных запросов. Улучшит производительность.

SELECT 
    produkt.Twr_Kod as kod,
    (SELECT
         ISNULL(SUM(zasoby.TwZ_Ilosc), 0) + ISNULL(SUM(trs_ilosc), 0) 
     **FROM
         cdn.TraSElem 
     WHERE
         trs_typ = 3 AND TrS_TrEIdWydania = 0 
         AND TrS_DataOpe > GETDATE() AND zasoby.TwZ_TwrId = TrS_TwrId 
         AND zasoby.TwZ_MagId = 1
     FROM 
         CDN.TwrZasoby as zasoby**
     WHERE 
         zasoby.Twz_TwrId = product.Twr_twrid) AS zasoby,
    CONVERT(NUMERIC(10, 0), produkt.Twr_IloscMin) AS ilosc_minimalna
FROM
    CDN.Towary AS product
LEFT JOIN 
    CDN.Towary AS produkt ON product.Twr_TwrId = produkt.Twr_TwrId
GROUP BY 
    product.Twr_TwrId, produkt.Twr_Kod, produkt.Twr_IloscMin
ORDER BY 
    kod
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...