Nano Hash - криптовалюты, майнинг, программирование

Как я могу присоединиться к этим 2 запросам? (Выборочный запрос с соединением и запрос на разворот)

Вот мои два запроса

SELECT EWND.Position,
NKey = CASE WHEN ISNULL(Translation.Name, '') = '' THEN EWND.Name
ELSE  Translation.Name END, Unit = EW_N_DEF.Units                               
FROM EWND
INNER JOIN EW_N_DEF ON EW_N_DEF.Nutr_No = EWND.Nutr_No
LEFT JOIN Translation ON Translation.CodeMain = EWND.Nutr_no
WHERE Translation.CodeTrans  = 1
ORDER BY EWND.Position

А это бесповоротный

SELECT * 
FROM 
   (SELECT N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34
   FROM EWNVal WHERE Code=6035) Test
UNPIVOT
   (Value FOR NUTCODE IN 
      (N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34)
)AS test

Вывод запросов выглядит следующим образом:

  Position Name         Unit
    1   Calories    
    2   Protein g
    3   Total Fat           g
    4   Total Carbs         g
    5   Calories from Fat   
    6   Saturated Fat       g
    7   Trans Fat           g
    8   Monounsaturated Fat g
    9   Polyunsaturated Fat g   

А также

Value Code
    0   N1
    0   N2
    0   N3
    0   N4
    0   N5
    0   N6
    0   N7
    0   N8
    0   N9

Вывод должен быть таким

1   Calories                0   N1
2   Protein             g   0   N2
3   Total Fat           g   0   N3
4   Total Carbs         g   0   N4
5   Calories from Fat       0   N5
6   Saturated Fat       g   0   N6
7   Trans Fat           g   0   N7
8   Monounsaturated Fat g   0   N8
9   Polyunsaturated Fat g   0   N9

Оба запроса выдают одинаковое количество строк, но не столбцов. Можно ли объединить эти два? Я пробовал союз, но у него есть проблемы, которые я не могу решить

Заранее спасибо!


  • может предоставить образцы данных с желаемыми результатами? 23.11.2012
  • @MANGKANOR Два набора записей как-то связаны друг с другом? 23.11.2012
  • Я так думаю, он объединяется на основе его КОДА, N1 для позиции 1 и так далее. 26.11.2012

Ответы:


1

Если ваши данные из двух запросов объединяются на основе числовой части Code и Position, вы можете использовать что-то вроде этого:

select q1.position,
  q1.name,
  q2.value,
  q2.code
from
(
  SELECT EWND.Position,
    NKey = CASE WHEN ISNULL(Translation.Name, '') = '' THEN EWND.Name
                ELSE  Translation.Name END, Unit = EW_N_DEF.Units                               
  FROM EWND
  INNER JOIN EW_N_DEF 
    ON EW_N_DEF.Nutr_No = EWND.Nutr_No
  LEFT JOIN Translation 
    ON Translation.CodeMain = EWND.Nutr_no
  WHERE Translation.CodeTrans  = 1
) q1
full outer join
(
  SELECT value, code
  FROM 
  (
     SELECT N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34
     FROM EWNVal 
     WHERE Code=6035
  ) Test
  UNPIVOT
  (
    Value FOR NUTCODE IN 
        (N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34)
  )AS test
) q2
  on q1.Position = right(q1.code, len(q1.code)-1)
26.11.2012
  • Спасибо вам огромное! Это сработало, я просто изменил q1.name на q1.Nkey и другие имена столбцов. Но это то, что я искал! спасибо большое ^_ __^ 27.11.2012

  • 2

    В Union и Union все вы должны иметь оба результата с одинаковым именем столбца. для столбца вы можете использовать любой псевдоним, но имя столбца должно быть таким же.

    для этого вы можете сослаться на этот ответ

    объединение результатов двух операторов select

    23.11.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..