Различные результаты на основе разных значений внешнего ключа с использованием выражения Falg в предложении where - PullRequest
2 голосов
/ 04 июня 2010

Пожалуйста, смотрите прикрепленное изображение.

альтернативный текст http://img241.imageshack.us/img241/3585/customcost.png

Подскажите, пожалуйста, какой запрос будет работать. Пожалуйста, игнорируйте столбцы isdefinite и productpriceid.

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 июня 2010

Я немного растерялся от того, чего ты хочешь достичь здесь, в соответствии с вашим требованием , если isCustomCost = 1, то вернуть запись # 3 из SupplierVenueProductId 1 и обе записи из SupplierVenueProductId 2

Пытаясь обобщить это, я думаю, что вам нужно :

возвращает все строки из таблицы, кроме случаев, когда существует запись для SupplierVenueProductId, у которой isCustomCost = 1, а затем только эта запись для этого SupplierVenueProductId

Который затем становится чем-то вроде:

SELECT t1.* 
  FROM myTable t1
 WHERE t1.isCustomCost = 1
    OR NOT EXISTs (SELECT *
                     FROM t2
                    WHERE t2.SupplierVenueProductId = t1.SupplierVenueProductId
                      AND t2.isCustomCost = 1)

Надеюсь, это поможет.

0 голосов
/ 04 июня 2010

Если вам нужен один запрос, это следует сделать, если я правильно интерпретировал ваш вопрос:

SELECT  DISTINCT t1.SupplierVenueProductID, [...]
FROM    table t1
        LEFT JOIN
                table t2
                ON t1.SupplierVenueProductID = t2.SupplierVenueProductID
                AND t2.iscustomcost = 1
WHERE   t2.SupplierVenueProductID IS NULL
OR      t1.iscustomcost = 1

Я не знаю имени вашей таблицы, но вы присоединяете ее к себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...