Vinnaren i pepparkakshustävlingen!
2011-02-15, 10:43
  #1
Medlem
Hej!

Jag har en kolumn i en tabell, ProduktNamn, den kan vara i lager eller såld. Det beror på attributet Status som kan vara 0 eller 1. Hur skriver jag EN fråga som visar ProduktNamnLager och ProduktNamnSåld?

Har bara lyckats skriva en fråga där jag får fram Produkter som antingen är sålda eller i lager, inte lyckats skapa en som visar båda...
Citera
2011-02-15, 22:54
  #2
Medlem
dethalvabarnets avatar
En select sats 2ggr på samma tabell med alias där du gör som villkor det du vill.
Låter som en skoluppgift så mer hjälp får du icke, går säkert att lösa på något annat sätt. De enda queries jag gjort på senaste e hql queries.
Citera
2011-02-16, 07:23
  #3
Medlem
Citat:
Ursprungligen postat av dethalvabarnet
En select sats 2ggr på samma tabell med alias där du gör som villkor det du vill.
Låter som en skoluppgift så mer hjälp får du icke, går säkert att lösa på något annat sätt. De enda queries jag gjort på senaste e hql queries.

Det är faktiskt inte en skoluppgift, förenklade förklaringen bara för att det skulle vara enklare att förstå!

Hur menar du med en select sats 2ggr på samma tabell? En subquery? På något sätt måste jag väl få in villkoret ovanför WHERE satsen? Annars behövs det väl två SQL frågor.
Citera
2011-02-16, 09:56
  #4
Medlem
dethalvabarnets avatar
select a.namn as ProduktNamnLager b.namn as ProduktNamnSåld
from ProduktNamn a, ProduktNamn b
where a.status = 0 and b.status = 1;

Något sådant *varning ej testad så kan vara fel*
Citera
2011-02-16, 15:05
  #5
Medlem
Citat:
Ursprungligen postat av PerWi
Hej!

Jag har en kolumn i en tabell, ProduktNamn, den kan vara i lager eller såld. Det beror på attributet Status som kan vara 0 eller 1. Hur skriver jag EN fråga som visar ProduktNamnLager och ProduktNamnSåld?

Har bara lyckats skriva en fråga där jag får fram Produkter som antingen är sålda eller i lager, inte lyckats skapa en som visar båda...
Om detta är MSSQL server så fungerar båda följande två varianter.

Om logiken säger att de bara har ett av de två namnen:
Kod:
SELECT ISNULL(ProduktNamnLager, ProduktNamnSåld) AS [ProduktNamn]
FROM ProduktNamn
Annars:
Kod:
SELECT CASE WHEN Status = 0 THEN ProduktNamnLager
ELSE ProduktNamnSåld END AS [ProduktNamn]
FROM ProduktNamn

EDIT:
Slänger med en tredje variant också:
Kod:
SELECT ProduktNamnLager AS [ProduktNamn]
FROM ProduktNamn
WHERE Status = 0
UNION
SELECT ProduktNamnSåld AS [ProduktNamn]
FROM ProduktNamn
WHERE Status = 1
Citera
2011-02-17, 07:05
  #6
Medlem
Annars:
Kod:
SELECT CASE WHEN Status = 0 THEN ProduktNamnLager
ELSE ProduktNamnSåld END AS [ProduktNamn]
FROM ProduktNamn

Kom precis på det här, den fungerar perfekt, tack för de andra tipsen! Kommer bergis behöva det sen!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback