|
|
|
Запрос возвращает две записи при использовании case when / IFNULL
|
|||
|---|---|---|---|
|
#18+
Ниже пример запроса который возвращает почему-то две записи вместо одной. Может я где-то что-то не понимаю, по моим воспоминаниям про мссиквел или оракл то должна быть одна запись. Что я делаю не так? Без этой конструкции всё нормально. IFNULL(`T_PART_ARTICLES_CHANGES`.`NEW_NAME`, `V_MONTHLY_REPORT`.`Faulty Part article 2` ) select distinct `V_MONTHLY_REPORT`.`ACS` AS `ACS`, `V_MONTHLY_REPORT`.`Minyear` AS `Minyear`, `V_MONTHLY_REPORT`.`Service Order` AS `Service Order`, `V_MONTHLY_REPORT`.`Spare Part Name 2`, IFNULL(`T_PART_ARTICLES_CHANGES`.`NEW_NAME`, `V_MONTHLY_REPORT`.`Faulty Part article 2` ) AS `Bad Module Article`, (case when (char_length(trim(`V_MONTHLY_REPORT`.`Faulty Part article 2`)) > 5) then 'No serial' else '' end) AS `Bad Module S/N`, ifnull(`T_PART_ARTICLES_CHANGES`.`NEW_NAME`, `V_MONTHLY_REPORT`.`Faulty Part article 2`) AS `Faulty Part article`, (case when (char_length(trim(`V_MONTHLY_REPORT`.`Faulty Part article 2`)) > 5) then 'No serial' else '' end) AS `ZIP Module S/N`, `V_MONTHLY_REPORT`.`Purchase Place` AS `Purchase Place` from (`prestigio`.`V_MONTHLY_REPORT` left join `prestigio`.`T_PART_ARTICLES_CHANGES` ON ((CONVERT(CONVERT(`V_MONTHLY_REPORT`.`Faulty Part article 2`, BINARY), CHAR(45)) = CONVERT(CONVERT(`T_PART_ARTICLES_CHANGES`.`OLD_NAME`, BINARY), CHAR(45)) ))) where (`V_MONTHLY_REPORT`.`Spare Part Name 2` <> '') and `Serial Number` = 'MTP30934104937' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 15:47:56 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=148&tid=1833638]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 324ms |

| 0 / 0 |
