Autor Téma: Rozdiel dvoch SELECT-ov  (Přečteno 589 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2720
  • Karma: 26
    • Verze Delphi: XE7 professional
Rozdiel dvoch SELECT-ov
« kdy: 28-07-2016, 13:21:06 »

Mám tabuľku s hodnotami 1..10
Kód: [Vybrat]
SELECT DISTINCT CAGROUPS.IDCAGROUPS, CAGROUPS.CODE, CAANALYTIC.IDCAANALYTIC
FROM CASYNTHETIC
  INNER OUTER JOIN CAGROUPS ON (CASYNTHETIC.FKCAGROUPS = CAGROUPS.IDCAGROUPS)
  INNER OUTER JOIN CAANALYTIC ON (CASYNTHETIC.IDCASYNTHETIC = CAANALYTIC.FKCASYNTHETIC)
WHERE
  CAGROUPS.FKCACLASSES = 1
mi vráti 1, 2, 3. Ďalej potrebujem získať zvyšok t.j. 4..10 Bežne mnou používané riešenie
Kód: [Vybrat]
SELECT DISTINCT CAGROUPS.IDCAGROUPS, CAGROUPS.CODE, CAANALYTIC.IDCAANALYTIC
FROM CASYNTHETIC
  INNER OUTER JOIN CAGROUPS ON (CASYNTHETIC.FKCAGROUPS = CAGROUPS.IDCAGROUPS)
  LEFT OUTER JOIN CAANALYTIC ON (CASYNTHETIC.IDCASYNTHETIC = CAANALYTIC.FKCASYNTHETIC)
WHERE
  CAGROUPS.FKCACLASSES = 1 AND CAANALYTIC.IDCAANALYTIC IS NULL
mi správne vráti 1..10, čo nechcem. FB UNION nepozná rozdiel.
Ako sa dopracujem k výsledku? Najradšej v jednom kroku.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2720
  • Karma: 26
    • Verze Delphi: XE7 professional
Re:Rozdiel dvoch SELECT-ov
« Odpověď #1 kdy: 28-07-2016, 14:49:54 »
Už som to zlepil. Jednoducho mám občas výpadok.
Kód: [Vybrat]

SELECT
  NEWAL.CODE,
  NEWAL.IDCAGROUPS
FROM
(SELECT DISTINCT CAGROUPS.IDCAGROUPS,
       CAGROUPS.CODE,
       CAANALYTIC.IDCAANALYTIC
FROM CASYNTHETIC
     INNER JOIN CAGROUPS ON (CASYNTHETIC.FKCAGROUPS = CAGROUPS.IDCAGROUPS)
     LEFT JOIN CAANALYTIC ON (CASYNTHETIC.IDCASYNTHETIC =
      CAANALYTIC.FKCASYNTHETIC)
WHERE CAGROUPS.FKCACLASSES = 1
       AND
      CAANALYTIC.IDCAANALYTIC IS NULL) AS
  NEWAL
  LEFT OUTER JOIN
  (SELECT DISTINCT CAGROUPS.IDCAGROUPS,
       CAGROUPS.CODE
FROM CASYNTHETIC
     INNER JOIN CAGROUPS ON (CASYNTHETIC.FKCAGROUPS = CAGROUPS.IDCAGROUPS)
     INNER JOIN CAANALYTIC ON (CASYNTHETIC.IDCASYNTHETIC =
      CAANALYTIC.FKCASYNTHETIC)
WHERE CAGROUPS.FKCACLASSES = 1) AS NEW_30 ON (NEWAL.IDCAGROUPS = NEW_30.IDCAGROUPS)
WHERE
  NEW_30.IDCAGROUPS IS NULL
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 244
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:Rozdiel dvoch SELECT-ov
« Odpověď #2 kdy: 29-07-2016, 20:22:39 »
zase autopilot

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: