0

I just realised that my Auto-Price Calculation doesn't fill the Prices for ListID 4. I inserted the Prices from the SELECT shown below.

For bugg research I executed the SELECT without the WHERE part and it shows me the example data row.

I can't find the error though, why it is not shown in the complete select (it has no entry with ListID = 4).

Someone can see my mistake?

Not In Error

Edit: Just tried the subselect alone, it shows no rows for the requested article. Why is the NOT IN clause unaffected by this fact? subselect

4

1 回答 1

0

很可能,这是因为您如何将 和 结合artikelnummer起来auspraegungID

我认为您没有考虑'100' + '0'到与'10' + '00'.


与其尝试将两个字段合并为一个,不如尝试以下方法?

SELECT
  *
FROM
  #allArticles  AS allArticles
WHERE
  Artikelnummer = 'IT-810260'
  AND NOT EXISTS (SELECT *
                    FROM KHKPreisListenArtikel
                   WHERE ListeID       = 4
                     AND Artikelnummer = allArticles.Artikelnummer
                     AND Auspraegung   = allArticles.Auspraegung
                 )


如果这仍然不起作用,那么您必须在另一个表中有相应的记录,像这样找到它们......

SELECT
  *
FROM
  #allArticles            AS allArticles
INNER JOIN
  KHKPreisListenArtikel   AS Preis
    ON  Preis.ListeID       = 4
    AND Preis.Artikelnummer = allArticles.Artikelnummer
    AND Preis.Auspraegung   = allArticles.Auspraegung
WHERe
  allArticles.Artikelnummer = 'IT-810260'

另请注意

请不要包含代码图像,请复制代码,以便我们也可以复制它。

特别是当表格/字段是另一种语言时......


编辑

这是一个查询,它将显示原始查询失败的原因。

SELECT
  *
FROM
  #allArticles            AS allArticles
INNER JOIN
  KHKPreisListenArtikel   AS Preis
    ON  Preis.ListeID       = 4
    AND Preis.Artikelnummer       + CONVERT(VARCHAR(50), Preis.Auspraegung)
        =
        allArticles.Artikelnummer + CONVERT(VARCHAR(50), allArticles.Auspraegung)
WHERE
  allArticles.Artikelnummer = 'IT-810260'
于 2014-03-12T16:18:36.677 回答