|
|
|
| Всем доброго времени суток.
Есть запрос
SELECT V_kolvo.koddmto, импорт.Название, импорт.БЕИ, "" AS bei2, V_kolvo.kolvo, "" AS kolvo2, импорт.КодПОб, импорт.НазвПоб, V_kolvo.prim FROM V_kolvo, zayavki, импорт WHERE id_zayav=154 And V_kolvo.id_zayav=zayavki.id And импорт.КодДМТО=V_kolvo.koddmto;
в возвращаемых данных в столбце импорт.БЕИ могут быть разн величины: тонны, метры, кг и т.д.. Сейчас все возвращается в одном столбце импорт.БЕИ, второй bei2 остается пустым.
Собственно вопрос: можно ли заполнять и первый и второй столбец в зависимости от того какая ед измерения указана импорт.БЕИ. Т.е если там "т" или "кг", то значения переносить в bei2 и значение из V_kolvo.kolvo переносить в kolvo2. А если что-либо другое то оставлять как есть в импорт.БЕИ и V_kolvo.kolvo
Вроде как есть функция case, но не знаю как ее применить в данном случае и можно ли...
первонач. итог:
....| м | | 10 | |....
....| т | | 0,3 | |....
а было бы хорошо получить
....| м | | 10 | |....
....| | т | | 0,3 |....
в общем вот так путано, но может кто разберется.
спасибо | |
|
| |
|
|
|
|
SELECT V_kolvo.koddmto, импорт.Название,
iif(импорт.БЕИ = 'т' or импорт.БЕИ = 'кг', импорт.БЕИ,'') as BEI ,
iif( импорт.БЕИ = 'т' or импорт.БЕИ = 'кг','',импорт.БЕИ) AS bei2,
iif( импорт.БЕИ = 'т' or импорт.БЕИ = 'кг',V_kolvo.kolvo,0) as kolvo1,
iif(импорт.БЕИ = 'т' or импорт.БЕИ = 'кг',0,V_kolvo.kolvo) as kolvo2,
импорт.КодПОб, импорт.НазвПоб, V_kolvo.prim
FROM V_kolvo, zayavki, импорт
WHERE id_zayav=154
And V_kolvo.id_zayav=zayavki.id
And импорт.КодДМТО=V_kolvo.koddmto;
|
вообще не самое правильное решение. если вдруг появится желание выделить еще какую-то ед.изм. (или набор) в отдельный столбец придется все переписывать. | |
|
| |
|
|
|
| спасибо огромное! Выделение др. единиц не понадобится, уж точно не в этом случае :-) | |
|
| |
|
|
|
| Можно немного сократить, если, например, вместо:
iif(импорт.БЕИ = 'т' or импорт.БЕИ = 'кг', импорт.БЕИ,'') as BEI
написать
iif(импорт.БЕИ In ('т', 'кг'), импорт.БЕИ,'') as BEI
или так (без 3-го аргумента)
iif(импорт.БЕИ In ('т', 'кг'), импорт.БЕИ) as BEI
В 1-м и 2-м случае при несовпадении условия возвращается пустая строка, а в 3-м - Null. | |
|
| |